读取和写入存储在 aws s3 (Heroku + Django) 中的数据库文件

Posted

技术标签:

【中文标题】读取和写入存储在 aws s3 (Heroku + Django) 中的数据库文件【英文标题】:Read and write a DB file stored in aws s3 (Heroku + Django) 【发布时间】:2015-10-01 18:39:11 【问题描述】:

我坚持一个简单的要求,我很感激任何想法!

首先是环境:Django 应用程序部署在 Heroku 上,使用 Postgres DB 并从 AWS S3 提供静态文件。

我有一个带有 FileField 的模型,当我上传文件时,它存储在 AWS S3 存储桶中。

我只需要读取文件,写一些文本并再次保存,应该很容易吧?

我设法在我的笔记本电脑的 dev 中做到这一点,但是当我将应用程序部署到 heroku 时,我遇到了很多错误,例如文件路径错误(我猜它试图在 heroku 服务器中查找 aws 存储桶路径) ,写权限和其他一些...

我做错了吗?我怎样才能做到这一点? 谢谢先进!

【问题讨论】:

【参考方案1】:

我想错了……

解决办法是直接在定义的存储中读写:

from django.core.files.storage import default_storage
with default_storage.open(model.field.name, "w+") as f:
    f.write("hello")

希望这对任何人都有用

【讨论】:

以上是关于读取和写入存储在 aws s3 (Heroku + Django) 中的数据库文件的主要内容,如果未能解决你的问题,请参考以下文章

在 Golang 中从 AWS S3 读取文件

从 heroku 访问 s3 内容时,AWS 访问密钥显示在浏览器 url 中

在 Heroku 上使用 Django 将大文件上传到 AWS S3 存储桶而没有 30 秒的请求超时

AWS EMR 文件已存在:Hadoop 作业读取和写入 S3

无法计算 MD5:AWS S3 存储桶

有没有人达到过 Amazon S3 存储桶的读取或写入上限?