【发布时间】:2012-03-07 20:12:41
【问题描述】:
我正在尝试使用此 Ruby 代码将图像上传到 Amazon S3:
require 'net/http/post/multipart'
url = URI.parse('http://public.domain.com/')
File.open("/tmp/uup_1114.jpg") do |jpg|
req = Net::HTTP::Post::Multipart.new url.path,
'key' => s3_key,
'acl' => s3_acl,
'content_type' => s3_content_type,
'AWSAccessKeyId' => s3_AWSAccessKeyId,
'policy' => s3_policy,
'signature' => s3_signature,
"file" => UploadIO.new(jpg, "image/png", "image.jpg")
res = Net::HTTP.start(url.host, url.port) do |http|
http.request(req)
end
end
我收到来自亚马逊的错误:
InvalidArgument:Bucket POST 必须包含一个名为“key”的字段。如果指定,请检查字段的顺序。
看起来“文件”字段在查询中排在第一位,这会导致上述错误。我不知道如何在查询结束时发布文件字段。
【问题讨论】:
标签: ruby-on-rails http post upload amazon-s3