【问题标题】:Access URL of S3 files using Boto使用 Boto 访问 S3 文件的 URL
【发布时间】:2018-07-16 22:18:27
【问题描述】:

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

【问题讨论】:

    标签: python django amazon-s3 boto boto3


    【解决方案1】:

    在 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 %}
    

    【讨论】:

    • 是的。好的。我必须将 URL 起始部分与每个图像的键连接起来。如何在 HTML 中的 {{ }} 中执行此操作?
    • 我编辑了我的答案来解释这一点。 Django 有一个非常强大的模板库来注入 HTML
    猜你喜欢
    • 2011-03-30
    • 2015-08-23
    • 2016-09-23
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2016-02-10
    • 2017-08-18
    相关资源
    最近更新 更多