2

ruby を使用して s3 の署名付き URL に投稿する実際の例を誰でも入手できます

4

6 に答える 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 に答える