如何在 Django 模板中显示存储在 Amazon S3 中的媒体文件?

3 html django amazon-s3 amazon-web-services

我已将 Amazon S3 与我的 Django 应用程序集成。在我的 S3 存储桶中创建了一个媒体文件夹,当用户上传文件时,它显示在那里就好了。我不清楚的是如何在模板中显示这些文件。目前代码是:

<img src="https://s3.console.aws.amazon.com/s3/buckets/myprojectbucket/media/{{ model.file }}"/>
Run Code Online (Sandbox Code Playgroud)

我也试过:

<img src="{{ model.file }}"/>
Run Code Online (Sandbox Code Playgroud)

要记住的另一件事是,当我尝试从 S3 帐户访问这些文件时,我会得到此输出。不确定这是权限问题还是什么。但是,在管理员中,图像显示正常。

  • 不再拒绝访问 - 我公开访问(不确定这是否是唯一/最好的方法)。仍然不清楚如何在模板中显示它。网址给出了 404 错误。

  • 在 Admin 中,文件路径是 /folder/file.jpg,但在模板中,文件路径是 /media/folder/file.jpg。我认为这可能是问题的根源,但不确定媒体为何存在。

任何帮助,将不胜感激。

小智 8

这个答案也可以在在模板上获取 Amazon S3 服务器上的媒体图像中找到,所以如果 mods 觉得不需要,请随意删除。

超级简单。您所要做的就是:

<img src="{{ model.file.url }}"/>
Run Code Online (Sandbox Code Playgroud)