使用 Boto 访问 URL 个 S3 文件

Access URL of S3 files using Boto

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

访问 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 %}