我的S3存储桶中有一些图像,我想在django应用程序中显示它们。
import boto3
s3=boto3.client('s3')
list=s3.list_objects(Bucket='my_bucket_name')['Contents']
for l in list:
print(l[u'Key'])
使用此代码,我将获得这些图像的名称。如何使用相同的方法获取图像的URL,以便将其传递到HTML页面以显示它?
答案 0 :(得分:0)
用于访问S3文件的URL遵循以下格式:
https://<region>.amazonaws.com/<bucket-name>/<key>
参见此处:https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAPI.html
然后利用Django模板语言(请参见此处:https://docs.djangoproject.com/en/2.0/ref/templates/language/#)注入所需的内容。
如果存储桶存储在列表中,而每个存储桶的键存储在字典中,则可以执行以下操作:
{% for bucket in buckets %}
{% for key in keys[bucket] %}
<a href="https://<region>.amazonaws.com/{{ bucket }}/{{ key }}">S3 link here</a>
{% endfor %}
{% endfor %}