7

ここで説明されているように、Amazon S3 バケットをウェブサイトとして設定したいと考えています。

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

ただし、Ruby API、できれば ruby​​ の aws-sdk を使用します。それを行う可能性はありますか/すでにそれをサポートしているライブラリですか? aws-sdk と right-aws で何も見つかりませんでしたが、盲目だったのでしょうか?

4

3 に答える 3

6

Ruby API を使用して、バケットを Web サイトとして構成することができます。私は解決策を見つけましたが、これはaws-s3宝石ではなく宝石を使用していaws-sdkます。私は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)

EDITfogこれを達成するために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
于 2012-09-11T19:27:22.743 に答える
1

AWS SDK for Ruby のバージョン 1 には、#configure_websiteバケット オブジェクトのメソッドがあります。したがって、次のようなものが機能します。

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 へのブロックを省略できます)

于 2014-10-06T10:21:35.273 に答える
-3

@Aljoscha AWS S3 は、すべてのファイルを保存する単なるストレージ ソリューションです。いかなる種類の実行時ソリューションも提供しません。Ruby ベースのアプリケーションをホストするか、Ruby API を使用するには、Ec2 インスタンスが必要です。S3 で静的 Web サイトをホストすることはできますが、どのような種類のアプリも実行できません。

于 2012-06-01T06:48:03.343 に答える