ruby を使用して s3 の署名付き URL に投稿する実際の例を誰でも入手できます
2817 次
6 に答える
2
私はaws-sdkとright_awsの両方を使用しました。
これを行うためのコードは次のとおりです。
require 'rubygems'
require 'aws-sdk'
require 'right_aws'
require 'net/http'
require 'uri'
require 'rack'
access_key_id = 'AAAAAAAAAAAAAAAAA'
secret_access_key = 'ASDFASDFAS4646ASDFSAFASDFASDFSADF'
s3 = AWS::S3.new( :access_key_id => access_key_id, :secret_access_key => secret_access_key)
right_s3 = RightAws::S3Interface.new(access_key_id, secret_access_key, {:multi_thread => true, :logger => nil} )
bucket_name = 'your-bucket-name'
key = "your-file-name.ext"
right_url = right_s3.put_link(bucket_name, key)
right_scan_command = "curl -I --upload-file #{key} '#{right_url.to_s}'"
system(right_scan_command)
bucket = s3.buckets[bucket_name]
form = bucket.presigned_post(:key => key)
uri = URI(form.url.to_s + '/' + key)
uri.query = Rack::Utils.build_query(form.fields)
scan_command = "curl -I --upload-file #{key} '#{uri.to_s}'"
system(scan_command)
于 2013-02-07T10:09:57.547 に答える
1
「署名付き URL」の仕組みについて詳しく教えてください。このようなものですか:
AWS::S3::S3Object.url_for(self.full_filename,
self.bucket_name, {
:use_ssl => true,
:expires_in => ttl_seconds
})
このコードを使用して、認証されたクライアントに URL を S3 ファイルに送信します。これが、あなたが求めている「署名付き URL」だと思います。私はこのコードを PUT に使用したことがないので、それがあなたに適しているかどうかは正確にはわかりませんが、近いかもしれません。
于 2008-09-19T02:21:56.003 に答える
0
Ruby 用の一般的な REST ライブラリがいくつかあります。「ルビー レスト クライアント」の Google。HTTPartyも参照してください。
于 2008-10-19T15:43:04.673 に答える
0
s3 ライブラリ ページには、必要なものが含まれていますか? そこにはたくさんの例があります。
于 2008-09-18T07:25:53.397 に答える
-5
私はなんとかそれを整理することができました。RubyのHTTP:Netにはいくつかの欠点があります。後でたくさんのモンキーパッチが機能するようになりました。時間があれば詳細を確認してください。感謝
于 2008-09-20T01:45:42.877 に答える