ruby - 使用 ruby​​ SDK 将 S3 存储桶设置为网站

标签 ruby api amazon-s3

<分区>

我想按照此处所述将 Amazon S3 存储桶设置为网站:

http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html?r=5271

但使用 ruby​​ API,最好是用于 ruby​​ 的 aws-sdk。 是否有可能这样做/一个已经支持它的图书馆?在 aws-sdk 和 right-aws 中找不到任何东西,但也许我只是瞎了眼?

最佳答案

可以使用 ruby​​ API 将您的存储桶配置为网站。我确实找到了解决方案,但这使用了 aws-s3 gem,而不是 aws-sdk gem。我在 ponyhost gem 中找到了这个解决方案:

body = '<?xml version="1.0" encoding="UTF-8"?>
<WebsiteConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <IndexDocument><Suffix>index.html</Suffix></IndexDocument>
  <ErrorDocument><Key>404.html</Key></ErrorDocument>
</WebsiteConfiguration>'

res = AWS::S3::Base.request(:put, "/#{bucketname}?website", {}, body)

编辑您还可以使用fog gem 来完成此操作。

storage = Fog::Storage.new({
  :provider   => 'AWS',
  :aws_access_key_id => 'YOUR_KEY',
  :aws_secret_access_key => 'YOUR_SECRET',
  :region => 'eu-west-1'
})

if storage.kind_of?(Fog::Storage::AWS::Real)
  storage.put_bucket_website("YOUR_BUCKET", "index.html", :key => "404.html")
end

关于ruby - 使用 ruby​​ SDK 将 S3 存储桶设置为网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10774353/

相关文章:

用于代码评论的 Github API

sql - ruby on rails 一个模型中的多个表

ruby - ActiveRecord:有很多通过(两次)

php - PHP 中的 RedBus 票务预订 API 集成

amazon-web-services - 获取getObject的进度(aws-sdk)

javascript - RXJS ^5.3.0 与 AWS JS SDK

java - MACOSX - java.lang.NoSuchMethodError : org. apache.http.impl.conn.CPool.setValidateAfterInactivity(I)V

ruby-on-rails - 如何将 gem 的插件 "convert"使其变为 "private"?

go 中的 Ruby 挤压替代方案

javascript - google maps API v3 如何删除信息窗口矩形下的箭头?