【问题标题】:Error Serving Filepicker.io/S3 images on Django App在 Django 应用程序上提供 Filepicker.io/S3 图像时出错
【发布时间】:2012-11-02 07:21:06
【问题描述】:

我有一个 Django 应用程序,可以在主页上显示用户上传的图像。我使用 filepicker.io 来处理上传,然后将它们存储在我的 Amazon S3 存储桶中。

问题是,当我尝试在线提供它们时,它们没有正确显示,b/c 文件选择器在上传后在文件名中添加了一个唯一键。

即上传的文件名为:milkshake.jpg。

使用文件选择器上传到 S3 后,文件名为: 97oj3Y12TIWylfhwlqtT_milkshake.jpg

此处托管了一个示例文件:https://s3.amazonaws.com/mrt-static/97oj3Y12TIWylfhwlqtT_milkshake.jpg

当点击网站上的图片时,它加载的 URL 是这样的:https://s3.amazonaws.com/mrt-static/media/milkshake.jpg

如何在我的网站上提供此服务?代码如下

#models.py
class Movie(models.Model):
poster          = django_filepicker.models.FPFileField(upload_to='movie_poster')
#also, not uploading to the folder in the bucket (called movie_poster), just uploading into the bucket

#home.html
<img src = "{{ MEDIA_URL }}{{ movie.poster }}">

#settings.py
MEDIA_URL = 'https://s3.amazonaws.com/mrt-static/'

【问题讨论】:

    标签: html django amazon-s3 filepicker.io


    【解决方案1】:

    在模板代码中执行此操作的正确方法是:

    <img src = "{{ movie.poster.url }}">
    

    【讨论】:

    • 谢谢,感谢,但没有回答我的问题。你知道该怎么做吗?
    • 把它放在你的模板代码中不能解决你的问题吗?这应该。该网址将附加随机密钥,并显示图像。
    • 不,当我这样做时,图像想要从中提取的 URL 是 s3.amazonaws.com/mrt-static/https://s3.amazonaws.com/mrt-static/…。我尝试删除 MEDIA_URL 以便 HTML 读取 然后它想从 s3.amazonaws.com/mrt-static/media/cloudatlas.jpg 中提取,而无需随机密钥。知道为什么吗?谢谢
    • 您能否描述一下您是如何设置 S3 和 Filepicker 集成的?
    • 当然。除了转到 filepicker.io 开发人员仪表板并输入我的 S3 密钥 ID、我的 S3 秘密访问密钥和我的 S3 存储桶名称之外,没有做太多事情。我测试了 S3 设置,它工作正常。除此之外,我在上传文件的 HTML 页面底部添加了 .除此之外我没有做过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2018-04-01
    • 2019-09-22
    • 1970-01-01
    相关资源
    最近更新 更多