使用ruby将文件http放置到S3预签名URL [英] http PUT a file to S3 presigned URLs using ruby

查看:81
本文介绍了使用ruby将文件http放置到S3预签名URL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何人都有一个使用ruby在s3上发布到预签名URL的有效示例

Anyone got a working example of using ruby to post to a presigned URL on s3

推荐答案

我同时使用了aws-sdk和right_aws.

I have used aws-sdk and right_aws both.

这是执行此操作的代码.

Here is the code to do this.

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)

这篇关于使用ruby将文件http放置到S3预签名URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆