マイセットアップのためCurrentBucketNotSpecifiedエラーがスローされます。ペーパークリップ2.3.11は `expiring_url`
1)私は、S3を指すように自分のドメインにCNAMEを追加しました。私はurl
メソッドを呼び出すときに
has_attached_file :report,
:storage => :s3,
:s3_credentials => {
:access_key_id => "xxxx",
:secret_access_key => "yyyy"},
:s3_permissions => 'private',
:s3_protocol => 'http',
:s3_host_alias => "assets.foo.com",
:url => ":s3_alias_url",
:bucket => "assets.foo.com",
:path => ":class/:attachment/:id_partition_:style.:extension"
は私が期待されるURLを取得:
assets.foo.com -> s3.amazonaws.com
2)私はS3
3)モデルのコードにassets.foo.com
と呼ばれるバケツを持っています。
s.report.url
#http://assets.foo.com/study/report/..../abc.pdf
試みが:s3_host_alias
キーが指定されていると:url
キーが":s3_alias_url"
に設定されている場合、バケット名が推測されたユーザマニュアルによると、期限切れURL
s.report.expiring_url
AWS::S3::CurrentBucketNotSpecified: No bucket name can be inferred from your current connection's address (`s3.amazonaws.com')
from C:/Ruby187/lib/ruby/gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3/base.rb:107:in `current_bucket'
from C:/Ruby187/lib/ruby/gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3/base.rb:179:in `bucket_name'
from C:/Ruby187/lib/ruby/gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3/object.rb:300:in `path!'
from C:/Ruby187/lib/ruby/gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3/object.rb:291:in `url_for'
from C:/Ruby187/lib/ruby/gems/1.8/gems/paperclip-2.3.11/lib/paperclip/storage/s3.rb:98:in `expiring_url'
from (irb):4
を生成するとき、私はエラーを取得します。私は指示に従って自分のモデルを構成しました。私はまだエラーに遭遇しました。
私は、すなわち
has_attached_file :report,
:storage => :s3,
:s3_credentials => {
:access_key_id => "xxxx",
:secret_access_key => "yyyy"},
:s3_permissions => 'private',
:s3_protocol => 'http',
:s3_host_alias => "assets.foo.com",
:url => ":s3_alias_url",
:bucket => "assets.foo.com",
:path => ":class/:attachment/:id_partition_:style.:extension"
バケット構成を追加することで問題を回避することができた私はバケット構成を追加すると、expiring_url
方法は、カスタムCNAMEエイリアスを無視します。
s.report.expiring_url
#http://s3.amazon.com/assets.foo.com/study/report/..../abc.pdf
興味深いことに、url
関数は、bucket
構成が存在していても期待されるURLを生成します。
s.report.url
#http://assets.foo.com/study/report/..../abc.pdf
注:私は同じ結果とCNAMEエイリアスをさまざまな組み合わせを試してみました:
assets.foo.com -> s3.amazonaws.com
assets.foo.com -> assets.foo.com.s3.amazonaws.com
でパッチを使用すると、DNSが完全にpropigatedされていることを確認しましたが追加されましたか? –
はい。例:http://assets.foo.com/study/report/..../ abc.pdfのURLが正しく解決されています。 –