从 S3 wagtail 提供静态文件和媒体文件

2023-12-24

我们将开始使用 S3 来托管我们的静态和媒体文件。

有谁有一个很好的链接来描述如何用鹡鸰做到这两点?

我们正在使用 Wagtail 1.9。

我无法让他们两个同时工作。

https://wagtail.io/blog/amazon-s3-for-media-files/ https://wagtail.io/blog/amazon-s3-for-media-files/

非常感谢任何帮助。


感谢两位的回复。

我已经设法解决了。

需要明确的是,我想在 S3 中使用相同的存储桶来为 wagtail 站点提供静态文件和媒体文件。

我们使用带有 FROM python:2.7 的 docker 容器

  • 鹡鸰==1.9
  • django-storages==1.5.2
  • boto3==1.4.4

自定义存储.py

from django.conf import settings
from storages.backends.s3boto3 import S3Boto3Storage
class StaticStorage(S3Boto3Storage):
  location = settings.STATICFILES_LOCATION
class MediaStorage(S3Boto3Storage):
  location = settings.MEDIAFILES_LOCATION

设置文件

STATICFILES_LOCATION = 'static'
MEDIAFILES_LOCATION = 'media'
STATICFILES_STORAGE = 'pcstudents.custom_storages.StaticStorage'
DEFAULT_FILE_STORAGE = 'pcstudents.custom_storages.MediaStorage'
COMPRESS_STORAGE = STATICFILES_STORAGE
AWS_S3_OBJECT_PARAMETERS = {
  'CacheControl': 'max-age=86400',
}
AWS_S3_REGION_NAME = 'region'
AWS_S3_SIGNATURE_VERSION = 's3v4'
AWS_QUERYSTRING_AUTH = False
AWS_STORAGE_BUCKET_NAME = 'bucketname'
AWS_ACCESS_KEY_ID = 'secrets'
AWS_SECRET_ACCESS_KEY = 'moresecrets'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
AWS_PRELOAD_METADATA = True
STATIC_URL = "https://%s/" % AWS_S3_CUSTOM_DOMAIN
MEDIA_URL = "https://%s/media/" % AWS_S3_CUSTOM_DOMAIN
COMPRESS_ROOT = ''
STATICFILES_FINDERS = [
  'django.contrib.staticfiles.finders.FileSystemFinder',
  'django.contrib.staticfiles.finders.AppDirectoriesFinder',
  'compressor.finders.CompressorFinder',
]
STATICFILES_DIRS = [
  '/code/static',
  '/usr/local/lib/python2.7/site-packages/wagtail/wagtailadmin/static/wagtailadmin',
]

通过此设置,我最终得到一个 S3 存储桶,其中包含两个文件夹:static 和 media。

我可以将静态收集到 S3 静态文件夹中,并从媒体文件夹上传和下载。

如果有人能找到任何改进的方法,我会洗耳恭听,但这确实有效。

Matt

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 S3 wagtail 提供静态文件和媒体文件 的相关文章

随机推荐

  • Tomcat:如何找出正在运行的Tomcat版本?

    我正在尝试让 Appfuse Tomcat jRebel 工作 Appfuse 默认使用 Cargo 下载 tomcat 版本 7 0 33 并将应用程序部署到其中 我希望使用已安装的 tomcat 版本 7 0 27 而不是下载的 tom
  • 通过 API 访问组织限制的 Google 表格

    我正在编写一个 Python 3 7 脚本 需要从 Google 电子表格读取数据 相关电子表格属于我的工作 Google 帐户所属的组织 我们将其称为 组织 电子表格权限设置为 组织中知道链接的任何人都可以查看 这个细节一直阻止我的应用程
  • Android Studio 4.2 不在 Gradle 栏中显示签名报告

    我正在使用 Firebase 启动一个新项目 并且必须从我的项目中获取 SHA1 密钥 最近 我将 Android Studio 更新到了 4 2 版本 签名报告选项卡从 Gradle 栏中消失了 按照图片操作 如何在 android st
  • 是否可以在 D3.js 中找到刻度之间的距离?

    有没有办法找出 x 轴上刻度线之间的距离 我使用序数标度与 rangeRoundBands 告诉我它没有刻度功能 var x d3 scale ordinal rangePoints margin left cWidth x domain
  • Sublime Text 记住打开的文件和文件夹

    我想做的就是每次打开 Sublime Text 时 它都会打开我之前处理的所有文件和文件夹 而不是每次打开 Sublime Text 时手动打开相同的文件夹和文件 例如 关闭一个窗口后 下次打开 Sublime Text 时 我希望打开同一
  • Rails 5.2 一些控制器操作给出了 InvalidAuthenticityToken

    之前我使用了一个 gem 它提供了一个控制器来接受外部服务以将一些数据发布到我们的应用程序中 然而在 Rails 5 2 中它停止工作了 当端点被触发时 它会引发ActionController InvalidAuthenticityTok
  • 当有人使用评论插件发表评论时收到通知

    所以我有一个iFrame粉丝页面上的应用程序 其中包括评论插件 有没有办法在每次有人添加评论时我 任何管理员都可以收到通知或电子邮件 You can 订阅 http developers facebook com docs referenc
  • 如何制作垂直输入框?

    这就是我要的 垂直输入字段 x 是关闭按钮 这是我到目前为止所拥有的 margin 0 padding 0 html body height 100 width 100 sidenav height 100 width 20 backgro
  • 在 R-Studio 中使用语法颜色打印

    在 R 中 我总是喜欢打印出脚本 因为它提供了一个很好的概述 并且可以调整最终的错误 我喜欢 R Studio 中的语法突出显示 因为它有助于阅读和快速理解代码 有没有办法打印出我在编辑器中看到的突出显示的文本 它不是 R Studio 解
  • 处理 Git 损坏的对象和树中的“有点 git”

    我尝试使用过滤器分支重写历史记录 以便使用以下命令删除占用 SHA 的少量内存 超过 300 MB git filter branch index filter git rm ignore unmatch cached
  • 数据转换(收集?)

    我有以下内容 id a b c d 1 10 20 33 42 2 30 20 32 42 3 34 24 35 32 4 32 24 35 25 5 22 14 35 36 但我宁愿以这种形式 只有列 a 和 b id aOrB valu
  • 在 C# Azure 函数 (v2) 中使用来自 Azure Key Vault 的不可导出客户端证书

    我正在尝试设置对外部 API 的客户端证书身份验证 这不可出口的客户端证书位于 Azure Key Vault 中 我的代码是应用服务计划中托管的 Azure v2 函数中的 C NET Core 由于客户端证书不可导出 因此我无法将其放入
  • 在apache中添加标头

    我在这台服务器上有 apache 和许多图像 例如 http test com images abc jpg我希望有可能这样做 如果用户像这样访问网址http test com images download abc jpgapache必须
  • 重新定位法律标签 ( MKAttributionLabel )

    我想将法律标签移至右侧 在 iOS 6 和 7 上 以下解决方案工作正常 但在 iOS 8 3 上似乎不起作用 我得到标签 然后用一个计时器 0 1秒 viewDidLayoutSubviews我称这个方法为 void moveLegalL
  • 我应该使用线程还是任务 - 多客户端模拟

    我正在编写一个客户端模拟程序 其中所有模拟客户端都针对服务器运行一些预定义的例程 这是一个在天蓝色中运行的具有四个实例的 Web 服务器 所有模拟客户端在连接到服务器后都运行相同的例程 任何时候我都想使用我的程序模拟 300 到 800 个
  • 将带点的线添加到 ggplot2 中的绘图中

    为了方便起见 我想编写一个函数 将线图和散点图添加到现有的图中 我定义 addlinetoplot lt function dataset varx vary p lt geom line data dataset aes string x
  • 如何使用express-validator npm 验证密码

    我正在使用 Node 和 Express Web 模块编写 REST API 为了验证我正在使用快速验证器npm 我想在密码字段上应用一些验证规则 如何使用快速验证器来实现它 我想申请密码的验证规则为 最小 8 个字符长 至少一个大写字母
  • MVC 3:将用户控件添加到 Razor 视图

    我有一个 DLL 其中包含一个用户控件 在 Web 窗体视图中我可以通过使用轻松使用它 但如何在 Razor 视图中执行此操作呢 您无法将服务器端控件添加到 Razor 视图 一般来说 在 ASP NET MVC 应用程序中这样做是非常糟糕
  • 如何在一个 git 存储库中查找最新的提交?

    我有一个git存储库 有很多分支很多提交 我想找到最新的10个提交 如何做到这一点 谢谢 如果你想提交所有分支 你需要 all 参数 用 10 将 git log 限制为 10 并使用 date order 告诉 git log 根据日期对
  • 从 S3 wagtail 提供静态文件和媒体文件

    我们将开始使用 S3 来托管我们的静态和媒体文件 有谁有一个很好的链接来描述如何用鹡鸰做到这两点 我们正在使用 Wagtail 1 9 我无法让他们两个同时工作 https wagtail io blog amazon s3 for med