问题标签 [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 回答
2633 浏览

django - 指向 s3boto 中的多个 S3 存储桶

settings.py我有:

这指向我的 S3 存储桶static.mysite.com并且在我这样做时工作正常manage.py collectstatic,它将所有静态文件上传到我的存储桶。但是,我有另一个存储桶用于不同的目的,并希望在网站的某些区域使用,例如,如果我有这样的模型:

现在当Image.save()被调用时,它仍然会将文件上传到 S3 存储桶中AWS_STORAGE_BUCKET_NAME,但是我希望它Image.save()指向另一个 S3 存储桶。有什么干净的方法吗?我不想改变settings.py运行时间,也不想实施任何违反 django 关键原则的做法,即拥有一个可插入且易于更改的后端存储。

0 投票
4 回答
6942 浏览

django - Django - 导入 storages.backends 时出错

我创建了一个自定义存储后端,该文件被调用storages.py并放置在一个名为core

settings.py中,我有以下内容:

当我尝试这样做python manage.py collectstatic时,会显示以下错误:

当我运行python manage.py shell并尝试导入相同的内容时:

知道我做错了什么吗?

0 投票
1 回答
1020 浏览

django - Django:仅收集更改的静态文件

我正在使用 amazon s3 存储我所有的静态文件(通过 django-storages),做 PUT 比 GET 花费更多的钱。当我运行时manage.py collectstatic,Django 会为我拥有的每个静态文件执行 PUT。有没有办法让它首先检查文件是否已经改变,如果它没有不打扰 PUT?

0 投票
2 回答
2893 浏览

django - 在 django 应用程序上使用 django-storages 时,如何为存储在 amazon s3 上的图像获取 304?

我刚开始在亚马逊的 S3 上存储用户上传的图像。这很好,因为它解决了我的存储问题。但是,在让浏览器缓存图像时,我很挣扎。

我正在使用 django-storages。在他们的文档中,他们指定您可以通过在设置中设置 AWS_HEADER var 将内容放在图像的请求标头上。我正在这样做,但没有得到任何结果。

基本上,当应用程序请求图像时,我每次都会得到 200 个。ARG ...当我将浏览器直接转到图像时(将链接复制并粘贴到新窗口中),我每次都会得到 200 和 304。

这非常令人沮丧,因为它每次都会重新下载图像。有些页面上最多有 25 个小缩略图,每次重新加载页面时它都会重新下载所有内容。

我正在使用 djangos staticfiles 提供我的静态文件,它们工作正常。我得到一个 200,然后在文件被缓存后得到 304。

这是我在 settings.py 中的 AWS 设置

以下是应用程序请求图像时的请求和响应标头:(我已将我认为可能是敏感信息的内容替换为“ * ”)

以下是当我通过复制和粘贴图像链接手动请求图像时的请求/响应标头:

我看到有一些差异,例如 "If-None-Match:" 或 "If-Modified-Since:" 。我认为如果我要设置这些,那么它应该像我想要的那样工作。

是否有捷径可寻?

谢谢你的帮助!

编辑1:我读了这篇文章,翻译得不太好.. http://coder.cl/2012/01/django-and-amazon-s3/comment-page-1/

0 投票
1 回答
4508 浏览

django - 使用 django-storages 和 s3boto 后端,如何将缓存信息添加到图像的请求标头,以便浏览器缓存图像?

我使用的是 s3boto 后端,而不是 s3 后端。

django-storages 文档中,它说要在您的 settings.py 文件中指定 AWS_HEADERS 变量:

AWS_HEADERS(可选)

如果您想设置与存储的每个文件一起发送的标头:

这对我不起作用。

这是我的模型:

这就是我的模板上的图像...

以下是请求和响应标头:

当我将图像的路径粘贴到地址栏中时,它会缓存图像并给我一个 304 ......这是那些请求和响应标头:

0 投票
1 回答
748 浏览

django - Django-storages 和 boto 和 REST

晚上好,

  1. 我对 Django-Storages 需要什么感到有点困惑?( http://django-storages.readthedocs.org/en/latest/index.html ) 它是否只是提供一个层来继续使用基本的 Django 存储代码,但使用 Amazon S3?如果是这样,这就是它使用 Boto 的原因吗?

  2. 我会想使用 DevPay 和 Amazon S3。会s3boto用它吗?我读到要让 devpay 与 S3 一起工作,请求需要在 REST 中。DevPay 是否可以流式传输视频或获取图片的 URL?(在移动和网络浏览器上。)

谢谢!

0 投票
1 回答
2451 浏览

django - 使用远程存储配置 django-compressor (django-storage - amazon s3)

我的场景

我正在使用 django-storage 通过 Amazon S3 提供文件。这意味着当我执行 ./manage.py collectstatic 时,文件将保存在我在亚马逊的存储桶上,而不是本地文件系统上。

要压缩我做的文件:“./manage.py compress”这给出了这个错误:

错误:渲染时出错:[Errno 2] No such file or directory: u'/home/user/project/static/less/bootstrap.less'

由于该文件不在我的本地文件系统上。

“由于 Django Compressor 处理文件的方式,它要求要处理的文件(在 {% compress %} 块中)在本地文件系统缓存中可用。http://django_compressor.readthedocs.org/en/最新/远程存储/

问题

如何使 django-compress 与 django-storage (amazon s3) 一起工作?

到目前为止我尝试过的事情

在本地和 S3 上制作 collectstatic 保存文件。由于在 django-compressor 页面的文档中提到了它,应该有一些好的方法来做到这一点。如何?

配置

0 投票
6 回答
32049 浏览

python - 如何使用 django-storages 和 Amazon S3 设置 Django 项目,但静态文件和媒体文件使用不同的文件夹?

我正在配置一个 Django 项目,该项目使用服务器文件系统来存储应用程序静态文件 ( STATIC_ROOT) 和用户上传的文件 ( MEDIA_ROOT)。

我现在需要在 Amazon 的 S3 上托管所有这些内容,因此我为此创建了一个存储桶。使用存储后端,我设法将收集到的静态数据上传到 S3 存储桶django-storagesboto

然后,我遇到了一个问题:MEDIA_ROOTSTATIC_ROOT没有在存储桶中使用,因此存储桶根目录包含静态文件和用户上传的路径。

那么我可以设置:

并在模板中使用这些设置,但在使用django-storages.

如何做到这一点?

谢谢!

0 投票
1 回答
423 浏览

django - 自定义 S3BotoStorage 类构造函数错误

我正在尝试基于 S3BotoStorage 创建一个新的自定义存储类,并且我不断收到以下代码的此错误:

错误:

我的答案基于指向 s3boto 中的多个 S3 存储桶,它应该工作不?即使是正常情况下,我们也可以这样做:

它有效。(并将参数传递给构造函数)

0 投票
1 回答
285 浏览

django - 在 Django 模型中访问经过身份验证的用户的信息

我想知道我们如何在另一个模型中访问用户的数据?例如,这是我目前的情况。

  • 用户拥有公司的外键;所以用户与公司相关联。
  • 我已经实现了一个文件上传页面。此页面使用自定义存储解决方案,将文件上传到 Amazon S3。(它基于 S3BotoStorage)。
  • 在此构造函数中,我想访问与该公司关联的 bucket_name,该公司与用户相关联。我的所有用户都必须登录才能使用上传页面。
  • 所以:登录的用户有公司的外键,公司有bucket_name。登录用户在文件上传页面。

这是视图:

这是图片模型(文件模型或其他)


这是我在 settings.py 中设置为我的 default_storage 的存储模型:

从 from 或模板中,我可以传递它有一个参数并稍后检索它吗?我可以直接在模型中检索这些信息吗?关于如何做到这一点的任何想法?

谢谢!

编辑:这与用户有关,因为用户将包含与其链接的公司的 ForeignKey,并且该公司将包含有问题的 Bucket ...

编辑#2:我刚刚在 form_save 中尝试了 self.object.user = self.request.user并且它可以工作,但是我怎样才能超越它并访问我在使用 UserProfile 类扩展 User 时添加的字段?例如:

所以公司是用户扩展配置文件中的一个外键,公司包含一个桶字段。