问题标签 [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.
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 关键原则的做法,即拥有一个可插入且易于更改的后端存储。
django - Django - 导入 storages.backends 时出错
我创建了一个自定义存储后端,该文件被调用storages.py
并放置在一个名为core
:
在settings.py
中,我有以下内容:
当我尝试这样做python manage.py collectstatic
时,会显示以下错误:
当我运行python manage.py shell
并尝试导入相同的内容时:
知道我做错了什么吗?
django - Django:仅收集更改的静态文件
我正在使用 amazon s3 存储我所有的静态文件(通过 django-storages),做 PUT 比 GET 花费更多的钱。当我运行时manage.py collectstatic
,Django 会为我拥有的每个静态文件执行 PUT。有没有办法让它首先检查文件是否已经改变,如果它没有不打扰 PUT?
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/
django - 使用 django-storages 和 s3boto 后端,如何将缓存信息添加到图像的请求标头,以便浏览器缓存图像?
我使用的是 s3boto 后端,而不是 s3 后端。
在django-storages 文档中,它说要在您的 settings.py 文件中指定 AWS_HEADERS 变量:
AWS_HEADERS(可选)
如果您想设置与存储的每个文件一起发送的标头:
这对我不起作用。
这是我的模型:
这就是我的模板上的图像...
以下是请求和响应标头:
当我将图像的路径粘贴到地址栏中时,它会缓存图像并给我一个 304 ......这是那些请求和响应标头:
django - Django-storages 和 boto 和 REST
晚上好,
我对 Django-Storages 需要什么感到有点困惑?( http://django-storages.readthedocs.org/en/latest/index.html ) 它是否只是提供一个层来继续使用基本的 Django 存储代码,但使用 Amazon S3?如果是这样,这就是它使用 Boto 的原因吗?
我会想使用 DevPay 和 Amazon S3。会
s3boto
用它吗?我读到要让 devpay 与 S3 一起工作,请求需要在 REST 中。DevPay 是否可以流式传输视频或获取图片的 URL?(在移动和网络浏览器上。)
谢谢!
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 页面的文档中提到了它,应该有一些好的方法来做到这一点。如何?
配置
python - 如何使用 django-storages 和 Amazon S3 设置 Django 项目,但静态文件和媒体文件使用不同的文件夹?
我正在配置一个 Django 项目,该项目使用服务器文件系统来存储应用程序静态文件 ( STATIC_ROOT
) 和用户上传的文件 ( MEDIA_ROOT
)。
我现在需要在 Amazon 的 S3 上托管所有这些内容,因此我为此创建了一个存储桶。使用存储后端,我设法将收集到的静态数据上传到 S3 存储桶django-storages
:boto
然后,我遇到了一个问题:MEDIA_ROOT
和STATIC_ROOT
没有在存储桶中使用,因此存储桶根目录包含静态文件和用户上传的路径。
那么我可以设置:
并在模板中使用这些设置,但在使用django-storages
.
如何做到这一点?
谢谢!
django - 自定义 S3BotoStorage 类构造函数错误
我正在尝试基于 S3BotoStorage 创建一个新的自定义存储类,并且我不断收到以下代码的此错误:
错误:
我的答案基于指向 s3boto 中的多个 S3 存储桶,它应该工作不?即使是正常情况下,我们也可以这样做:
它有效。(并将参数传递给构造函数)
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 时添加的字段?例如:
所以公司是用户扩展配置文件中的一个外键,公司包含一个桶字段。