问题标签 [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 投票
2 回答
5667 浏览

django - Django storage s3 media url 是 https:// 而不是 http://

当使用 django-storage s3 提供媒体时,正在生成的媒体 url 是这样的:

由于https导致图像不显示:

我需要将图像作为 HTTP 而不是 HTTPS

我的设置是:

我尝试将 media_url 和 s3_url 设置为正常的 http,但它没有改变任何东西。

我正在使用 django 1.5

0 投票
6 回答
2943 浏览

django - django-storage 与 s3-boto 打破浏览器缓存

我有一个 django 项目,它在 s3-boto 上使用 django-storage。

问题是位于 S3 上的每个文件都无法缓存,因为每次调用都会更改 url。

这是 django-storage 生成的两个调用:

如您所见,签名不同。我该怎么做才不会破坏我的浏览器缓存?

0 投票
4 回答
1395 浏览

django - 使用前导斜杠存储 Django FileField

我有一个由两个不同系统使用的数据库,因此我实际上需要 FileField 值有一个前导斜杠,如下所示:

然而,在 Django 中,FileField 值不能有前导斜杠,因为它破坏了它们与MEDIA_ROOT.

所以我怀疑我要么必须创建一个自定义存储类,要么以某种方式自定义 FileField,以便在读取时删除前导斜杠并在保存时恢复。


如果有人想知道我为什么要这样做:我将文件镜像到单独的Django服务器上。

在 Django 服务器上,文件是相对于媒体根目录的。因此,假设媒体根目录为/path/to/myapp/media,则具有该路径的文件dirs/filename.ext将存在于/path/to/myapp/media/dirs/filename.ext.

同时,当镜像到另一台服务器时,它们是相对于 webroot 存储的。所以路径等价于文件的绝对URL(例如文件dirs/filename.ext存储在/path/to/example.com/dirs/filename.ext,访问为http://example.com/dirs/filename.ext)。

两台服务器都使用相同的数据库。

我意识到一个解决方案是在另一台服务器上使用该字段的任何地方都添加一个斜杠,但这是跨越许多不同的源文件,而在 Django 中,由于记录模型,我应该能够仅在models.py文件中进行更改它将适用于整个 Django 站点。


到目前为止,我已经尝试创建一个自定义版本,FileField它正确地预先设置/了查找和保存,但是在 Django 应用程序中使用时,我无法让它删除前导斜杠。


例子

想象一个名为 Tool 的记录,其中包含一个 PDF 文件作为其手册。在 Django 服务器上,它将因此显示在模板中:

同时在另一台服务器上它更像(这是 CF 代码):

在第二个服务器示例中,它必须是绝对 URL。

所以,要清楚:

  • 第二台服务器不是 Django 项目
  • 在第二台服务器上更改代码会比在第一台服务器上更耗时
  • 因此 FileField 中的值需要是绝对 URL 才能与 Django 兼容,但需要使用前导斜杠保存以便与第二个服务器兼容。
0 投票
2 回答
1996 浏览

django - 生产环境中用于 django 的 Amazon S3

我正在使用 django-s3-folder-storage 来存储我的静态和媒体文件。我遵循了文档中提到的所有说明,但仍然无法提供我的静态文件。我可以为我的用户上传的文件提供服务,但是即使在运行 collectstatic 命令后静态文件也不会显示在网站上,该命令将文件复制到存储桶中。我没有在我的域中创建任何 CNAME 记录(不确定这是否有任何区别,因为我能够看到用户上传的图像)。

我的设置文件:

还有我的项目目录:

0 投票
0 回答
575 浏览

django - 使用 boto/django-storages 和 amazon s3 时无法从图像生成缩略图

我使用在这里找到的要点https://gist.github.com/valberg/2429288在保存时生成缩略图。它可以在本地工作,但不能在我得到 AttributeError 的生产环境中工作:

我已经用 100 种不同的方式来处理这个问题,在我能想到的几乎所有地方都添加了 image.seek(0) 或 suf.seek(0) 或 temp_handle.seek(0) 但没有任何效果。

0 投票
2 回答
814 浏览

django - 如何在 Amazon S3 中使用 django-photologue?解决 NotImplementedError

我在 Heroku 上使用 Photologue 应用程序和 S3 作为媒体和静态文件 Django 1.5 的存储时遇到问题。

问题是,每当我尝试在 django admin 中添加照片大小时,我都会得到:NotImplementedError

尝试使用 配置 photologue 也是如此manage.py plinit

问题似乎是 photologue 尝试os.path在几个地方使用方法,例如(回溯):

有没有办法将 django-photologue 与远程存储一起使用,尤其是 Amazon S3?

0 投票
1 回答
1308 浏览

django - 无法加载 Boto 的 S3 绑定。(安装博托)

我正在尝试使用 s3 来存储用户的上传文件,我使用 django 存储

pip install django-storages

将其添加到我的 INSTALLED_APPS

INSTALLED_APPS = (

...

“存储”,

)

在 settings.py 中设置变量

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

AWS_ACCESS_KEY_ID = '##################'

AWS_SECRET_ACCESS_KEY = '#######################'

AWS_STORAGE_BUCKET_NAME = '我的存储桶名称'

我已经安装了boto

sudo pip install boto

dyld:DYLD_ 环境变量被忽略,因为主可执行文件 (/usr/bin/sudo) 是 setuid 或 setgid

已满足要求(使用 --upgrade 升级):/Library/Python/2.7/site-packages/boto-2.9.0_dev-py2.7.egg 中的 boto

打扫干净...

当我保存项目时,django的调试页面跳出来,

无法加载 Boto 的 S3 绑定。

https://github.com/boto/boto

有任何想法吗?(我使用 mac os x 10.8.3)

0 投票
2 回答
780 浏览

acl - django storages with boto using pirvate ACL 在保存时抛出 404

我正在使用带有 boto 的 django-storages。如果我让存储在我的模型中作为公共处理 S3 文件上传,那么一切正常。但是,当我在保存/更新时将 ACL 设置为私有时,我收到此错误消息

这发生在添加/更新记录时。

这是我拥有 FileFIeld 的模型的保存部分。我重写以将 acl 设置为私有。

但是文件保存一切正常。这是该死的错误。

0 投票
1 回答
1239 浏览

django - Google App Engine 上 Django 的 FileField(或 ImageField)

GAE 不允许读/写文件系统,这是 Django 的 FileField(或 ImageField)正在使用的(通过 FileSystemStorage 类)。

我正在考虑实现自定义 Django 存储,但 GAE blobstore 似乎与 Django 要求完全不兼容。具体来说,GAE blobstore 假设从客户端直接上传到存储,而 Django 自定义存储需要实现 _save(name, content) 方法。

据我所知,没有人提到这个缺失的实现。那里有一些自定义存储项目(最著名的是:BitBucket 上的 django-storages),实现了 S3、Windows Azure、许多其他后端,但对 Google 没有。

我应该采取什么方向在我的模型中拥有一个托管在 Google App Engine 上的 FileField?

澄清一下: - 我正在使用库存的主干,使用谷歌 SDK 附带的谷歌云 SQL Django 的主干 - 我没有使用 Django nonrel。- 我遵循了Google 文档中的Django 指南

0 投票
0 回答
138 浏览

python - Django 运行服务器和 s3boto 后端

Django 的“manage.py runserver”具有神奇的能力,可以在运行时神奇地收集更改的 CSS、JS 和图像文件。这使得在进行前端开发(尤其是 css)时保存更改 - 重新加载周期非常快。太棒了。

但是,我们最近搬到了 Heroku,并使用 s3boto 安装了 django-storages 来处理静态文件。它也很有效。但是,“manage.py runserver”不再自动向我们显示更新的文件。我们必须运行“manage.py collectstatic”才能做到这一点——这可行,但它增加了一个额外的步骤,并且在我们等待 collectstatic 步骤将文件上传到 S3 时减慢了开发速度。

有没有办法让 runserver 的旧行为恢复,同时保留 django-storages?