使用Boto访问S3文件的URL

时间:2018-07-16 08:50:58

标签: python django amazon-s3 boto boto3

我的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页面以显示它?

1 个答案:

答案 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 %}