首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用ruby SDK将S3 bucket设置为网站

使用ruby SDK将S3 bucket设置为网站
EN

Stack Overflow用户
提问于 2012-05-27 21:33:08
回答 3查看 594关注 0票数 7

我想设置一个亚马逊S3存储桶作为网站,如下所述:

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

但使用的是ruby API,最好是ruby的aws-sdk。有没有可能这样做/一个已经支持它的库?在aws-sdk和right-aws中找不到任何东西,但也许我只是盲目了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-12 03:27:23

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

代码语言:javascript
复制
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 来完成这项工作。

代码语言:javascript
复制
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
票数 6
EN

Stack Overflow用户

发布于 2014-10-06 18:21:35

AWS SDK for Ruby的第一个版本有用于存储桶对象的方法#configure_website。所以像这样的东西是可行的:

代码语言:javascript
复制
s3 = AWS::S3.new
b = s3.buckets.create(name, acl: :public_read)
b.configure_website do |cfg|
  cfg.options[:index_document] = { suffix: 'index.html' }
end

(如果您不需要设置非默认选项,则可以省略configure_website的块)

票数 1
EN

Stack Overflow用户

发布于 2012-06-01 14:48:03

@Aljoscha AWS S3只是一个存储解决方案,用来存储你所有的文件。它不提供任何类型的运行时解决方案。您需要有一个Ec2实例来托管您的基于ruby的应用程序,或者使用ruby API。你只能在S3上托管一个静态网站,但不能运行任何类型的应用程序。

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

https://stackoverflow.com/questions/10774353

复制
相关文章

相似问题

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