首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将AWS Gem与回形针一起用于DigitalOcean Spaces服务?

是否可以将AWS Gem与回形针一起用于DigitalOcean Spaces服务?
EN

Stack Overflow用户
提问于 2017-10-07 14:59:21
回答 3查看 874关注 0票数 1

我尝试在Ruby On Rails中使用aws+回形针gems来使用DigitalOcean空间来上传文件

我遇到的问题是配置的结果,我得到的是"{name_buncket}.s3.nyc3.amazonaws.com“而不是"{name_buncket}.s3.nyc3.digitaloceanspaces.com",,最后是访问DigitalOcean空间的正确结果

aws-sdk gem是亚马逊服务的专属,如果是这样的话,还有其他类似于aws-sdk的gem可以使用吗?

这就是我使用的配置:

代码语言:javascript
复制
config.paperclip_defaults = {
    storage: :s3,
    url: '.....',
    s3_region: 'nyc3',
    s3_credentials: {
    bucket: '......',
    access_key_id: "......",
    secret_access_key: "........",
    s3_host_name: 'nyc3.digitaloceanspaces.com'
  }
}
EN

回答 3

Stack Overflow用户

发布于 2017-10-10 01:31:56

我认为你现在不走运,尽管不是因为你现在遇到的主机名问题。

s3_host_name密钥应该在您的s3_credentials块之外。如果您将配置更改为:

代码语言:javascript
复制
config.paperclip_defaults = {
  storage: :s3,
  url: '.....',
  s3_region: 'nyc3',
  s3_credentials: {
    bucket: '......',
    access_key_id: "......",
    secret_access_key: "........"
  },
  s3_host_name: 'nyc3.digitaloceanspaces.com'
}

你应该解决你的主机名问题。

然而,目前这只会把你引向另一个问题:回形针/aws-sdk身份验证目前不能与DigitalOcean Spaces一起使用--请参阅this issue on GitHub

票数 1
EN

Stack Overflow用户

发布于 2017-10-27 07:10:50

除了设置s3_host_name之外,您还需要配置AWS SDK使用的endpoint。回形针不会直接暴露这一点,但它可以通过s3_options进行设置。我可以通过以下配置成功地使用带空格的回形针,其中环境变量S3_HOST_NAME设置为nyc3.digitaloceanspaces.com

代码语言:javascript
复制
  config.paperclip_defaults = {
    storage: :s3,
    bucket: ENV["S3_BUCKET"],
    s3_credentials: {
      access_key_id: ENV["S3_ACCESS_KEY_ID"],
      secret_access_key: ENV["S3_SECRET_ACCESS_KEY"]
    },
    s3_host_name: ENV["S3_HOST_NAME"],
    s3_host_alias: ENV["S3_HOST_ALIAS"],
    s3_region: ENV["S3_REGION"],
    s3_protocol: :https,
    s3_options: {
      endpoint: "https://" + ENV["S3_HOST_NAME"],
    },
    url: ":s3_alias_url",
    path: "/assets/:class/:attachment/:style/:filename",
  }
票数 1
EN

Stack Overflow用户

发布于 2017-10-13 10:38:08

我开始了回形针的门票,数字海洋也有一个,但还没有回复。drosboro进入的上述示例在理论上应该是有效的,但它不是。指定s3_host_name什么也不做,并显示为原始帖子中指定的主机名,尽管我确实同意问题一定出在某个地方的身份验证问题上。

为了测试,我从:s3切换到storage::fog。指定方案:'https‘将导致403响应,而切换到方案:'http’将导致302响应。有趣的是,使用在json输出中显示文件大小,而通过http上传则显示为0。很奇怪。

考虑到可能使用了一些较新的API选项,我切换到了AWS-SDK v3,这导致了它自己的问题,我能够解决这些问题。不过,还是没有骰子。如果我从任何人那里收到关于这方面的更新,我会很乐意在这里发布回复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46617582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档