amazon-web-services - Carrierwave + Cloudfront + 签名 URL + 多个存储桶
问题描述
我有一个使用carrierwave
,carrierwave-aws
和cloudfront-signer
gems 的 Rails 5 应用程序。我给了一个为 Carrierwave 配置的默认存储桶。我可以很好地上传和提供内容(即用户头像等)。
我有另一个上传器,它有一个动态存储桶(即每个客户端)来隔离数据。我可以上传没有问题。问题是这些文件不会在云端提供服务(403 Forbidden)。我怀疑基本 CW 配置正在尝试使用另一个存储桶对存储桶进行签名以访问文件。
这是我迄今为止尝试过的上传配置:
def initialize(*)
super
# https://stackoverflow.com/questions/31589872/setup-for-an-uploader-carrierwave
self.aws_credentials = {
region: ENV['AWS_REGION']
}
self.aws_bucket = Apartment::Tenant.current
self.aws_signer = -> (unsigned_url, options) { Aws::CF::Signer.sign_url unsigned_url, options }
end
它设置了自定义存储桶,但 URL 似乎失败了。它们已签名,但都返回 403。
我怀疑我需要向存储桶或端点提供 aws_signer 选项以使其工作。
有任何想法吗?
解决方案
推荐阅读
- c - 链表打印问题
- filesize - 有没有办法减少具有大量 nan 值的 geotiff 的文件大小
- vue.js - 如何在 Windows 中安装 vue cli?
- android - Xamarin 表单:Android CardView 异常
- django - Django 模板变量条件不能正确评估?
- java - Java 在运行时分配具体的实现对象
- php - 从表中选择数据并从另一个表中填充特定值
- java - findById 在 Junit 测试用例中返回空
- reactjs - 为什么我的网站在输入文本时会重新渲染多次?
- excel - 未定义子或函数 - VBA 中的 TEXTJOIN?