问题标签 [django-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
357 浏览

django - Django 和 Amazon S3 的文件存储使用情况

我有一个场景,用户需要在我的应用程序中确定存储使用情况,因为它将限制可以使用多少存储空间。我目前正在使用 django-storage、boto 和 S3 来管理和存储文件。按用户汇总存储使用情况的最佳方法是什么?

我考虑过跟踪每个上传的文件,在上传时增加文件大小/在删除时减少文件大小,并将聚合文件大小存储在数据库中,但我想知道是否有办法更干净地获得它。其他人在那里做了什么解决方案?非常感谢。

0 投票
1 回答
775 浏览

django - 我需要哪些设置才能使 django-filebrowser 与 s3 存储一起使用?

我觉得我已经尝试了几乎所有的方法来获取静态和用户上传文件夹以使用 s3。在这一点上,当我运行collectstatic里面的所有文件夹mediastatic,即使我很确定我为要创建的两个文件夹配置了东西。

我怀疑这与 django-filebrowser 有关。似乎他们已经为存储进行了一些设置,但对于我的生活,我无法弄清楚如何让它们工作:

http://django-filebrowser.readthedocs.org/en/latest/settings.html?highlight=storages

http://django-filebrowser.readthedocs.org/en/latest/admin.html?highlight=storages

这里有人让 django-filebrowser 实际使用 s3 吗?如果不是,您还建议我在哪里托管用户上传文件?

django-filebrowser 它与我的应用程序非常接近。我将其设置为在每次上传图像时自动创建一组缩略图,并且效果很好。如果我不能从我的本地机器上取下它,它对我来说毫无用处。

我的摘录settings.py

还有我的 s3utils.py:

我的文件夹结构:

附加内饰项目

..管理.py

..addition_interiors_project

....addition_interiors_project

....媒体

....静止的

....首页

....s3utils.py

....设置.py

....urls.py

....wsgi.py

0 投票
1 回答
566 浏览

django - 通过 iPhone 应用程序将图像发送到 django Web 服务并发送

我有一个 django 网络服务。我希望能够接受来自 iOS 应用程序的图像,将图像保存到数据库中(图像文件本身应该放在我的 s3 存储桶中)。

通过管理员保存它非常容易,您只需定义upload_to存储桶并将其设置为 static_url,但我找不到任何关于如何保存从应用程序发送的图像的示例/文档。

谁能指出我正确的方向或举个例子?

由于我的问题含糊不清,请提供更多信息:

设置.py

这是我的图像类,我想做的是从应用程序中获取图像,将其保存到数据库和 S3 存储中,并将其链接到正确的外键。

我的麻烦在于了解如何在将信息保存到数据库的同时将文件保存到 S3。

0 投票
0 回答
533 浏览

django - Heroku S3 上的 Django 文件浏览器

这是我的仓库的链接:https ://github.com/dogukantufekci/cenkerbulut

我的项目在本地运行良好。

我的 IAM 政策是:

当我尝试通过 Heroku 和 S3 上的 Grappelli Admin 使用 Django-Filebrowser 时,出现 500 错误。

0 投票
1 回答
921 浏览

python - 当需要本地系统文件时,在 Django/python 中操作和创建 S3 文件

我正在使用 django-storages 将媒体文件存储在 S3 存储桶中。但是,我偶尔会转换或以其他方式摆弄文件以创建新文件,并且这种摆弄必须实际使用我的服务器上的文件(大部分转换使用进程调用发生)。完成后,我想将文件保存回 S3。

在理想情况下,从本地迁移到 S3 时,我不必对函数进行任何更改。但是,考虑到我必须创建这些中间本地文件来摆弄,我不确定我将如何做到这一点,然后最后知道结果文件(也将存储在本地机器上)需要然后是复制到 S3。

我能想到的最好的方法是使用一对上下文保护,一个用于源文件,一个用于目标文件。源文件将创建一个临时文件,该文件将复制源文件的内容,然后将其使用、操作等。目标文件上下文保护将在 S3 上获取最终所需的目标路径并创建一个临时本地文件,然后在退出时会在 S3 存储桶中创建一个密钥,复制临时文件的内容,然后将其删除。

但这对我来说似乎很复杂。它还要求我将每个操作这些文件的函数包装在两个“with”子句中。

我能想到的唯一其他解决方案是切换到处理类文件对象而不是文件名的实用程序,但这意味着我不能进行子进程调用。

0 投票
1 回答
1539 浏览

python - DRF 将我的 url 签名从 %2B 转换为 '+'

DRF 在自我描述 API 中呈现超链接 URL 的方式似乎存在错误。显示时,DRF 正在将我的 S3 (django-storage) url 签名从 %2B 转换为“+”。但是format=json没有这个翻译问题。

例如:

这是序列化器:

超链接图像字段:

URL 值正确,签名正确。但是,当 DRF 呈现 URL 时,它会从此更改签名......

好的

对此:

坏的

唯一的区别是%2B to '+'.

我试图在我的序列化程序中解决以下问题:

但是,无论如何,它总是将 %2B 转换为 '+'。

有解决办法吗?

0 投票
3 回答
1552 浏览

python - default_storage.exists 非常慢并且经常超时

我们刚刚将一个 Django 项目迁移到 Heroku,并将我们所有的媒体和静态文件放在 Amazon S3 上(使用 django-storages 和 s3-boto)。

尽管我听说过关于 Amazon S3 非常快的一切,并且由于性能缓慢而产生的结果很少,但我们的图像加载速度已经减慢到绝对爬行并且经常超时。超时代码的一个示例是我们的一个模型上的这个属性,它试图选择一个合适的图像,最终退回到返回None

当我在导致问题的模型上进行测试时,我尝试了这个:

ImageFieldFile这个命令导致 shell 在最终返回一个对象之前挂起几秒钟。对它的后续调用会立即返回,这让我相信结果被缓存了。

我的问题是,处理这个问题的最佳方法是什么?我听说过很多关于在这种情况下使用 CloudFront 的信息,但这绝对不是因为高流量(我们的网站上应该基本上没有任何流量)。其他一些缓存框架?完全不同的东西?

大多数有问题的图像至少为 1000x1000 像素。

0 投票
1 回答
655 浏览

django - 更新的 MEDIA_URL 未反映在 ImageField url 中

我正在尝试从 Amazon S3 上的服务文件转移到 Amazon CloudFront,因此我更新了我的settings.py. 以前,我有这个:

我将其更新如下:

在控制台中,设置已更新:

但不在我的模型上ImageField

是什么赋予了?旧信息仍存储在哪里,如何将其清除?

0 投票
1 回答
946 浏览

django - Django manage.py collectstatic 不上传到谷歌云存储

有问题的经验水平

这是我第一次部署静态文件和使用 Django。


问题

当我运行python manage.py collectstatic

我会得到以下结果:

但是在谷歌云存储中没有任何东西被推送到我的存储桶中。我在终端中没有收到任何错误。我有什么想念她的吗?


我的代码

我正在使用django-storages

这是我的setting.py中的以下定义:

我的要求.txt

0 投票
0 回答
838 浏览

heroku - 使用 S3 进行 Django CMS 图片插件存储

我正在尝试将 Django CMS 项目部署到 Heroku。媒体将通过 Django Storages 和 Boto 从 S3 提供。目前唯一的媒体包括 Django CMS 图片插件(使用标准 ImageField)和 Aldryn 博客文章(使用 FilerImageField 和 easy_thumbnails)。

通过 Django Filer 向博客文章添加图像效果很好,但是在创建 Django CMS 图片插件时添加图像失败并出现 500 错误:

POST /en/admin/cms/page/edit-plugin/3/ HTTP/1.1
主机:192.168.1.104 :8000
连接:keep-alive
内容长度:72567
缓存控制:max-age=0
接受:text/html ,application/xhtml+xml,application/xml;q=0.9,image/webp, / ;q=0.8
来源: http://192.168.1.104:8000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome /35.0.1916.153 Safari/537.36
内容类型:multipart/form-data;边界=----WebKitFormBoundaryegTMPxZL74Wiukrg
引用:http://192.168.1.104:8000/en/admin/cms/page/edit-plugin/3/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: django_language=en; sessionid=wj7ayeia7rwggp​​xecatspe7lw5i12345;csrftoken=Pf342snoku6cdoRD6b9FCtxfqVQ12345

HTTP/1.0 500 内部服务器错误
日期:2014 年 7 月 13 日星期日 07:06:46 GMT
服务器:WSGIServer/0.1 Python/2.7.3
内容语言:en
过期时间:2014 年 7 月 13 日星期日 07:06:46 GMT
变化: Cookie
上次修改时间:星期日,2014 年 7 月 13 日 07:06:46 GMT
缓存控制:max-age=0
X-Frame-Options:SAMEORIGIN
内容类型:text/html

图像成功上传到 S3,插件在 CMS 中创建,但显示为<Empty>. 以下是我认为的相关设置:

此外,我可以以编程方式创建一个图片插件,它工作正常:

任何关于我做错了什么的想法都将不胜感激,我被困住了。

编辑 1:感谢 mkoistinen 的回复,试图为您提供更多信息,但老实说,我对这些部分如何组合在一起有点困惑,所以我只是截取了屏幕截图。

插件创建表单:

表单处于错误状态一瞬间(我尝试单击“共享此回溯...”按钮但没有成功):

图像存储到 S3 并创建了一个 CMSPlugin(但不是图片):

响应为空,似乎也没有任何 JavaScript 错误:

编辑2:这个替换插件工作正常,不知道如何: