如何使用ruby检索对AWS::S3::MultipartUpload的引用



我有一个rails应用程序,在控制器操作中,我可以创建一个多部分上传,如下所示:

  def create
    s3 = AWS::S3.new
    bucket = s3.buckets["my_bucket"]
    key = "some_new_file_name.ext"
    obj = bucket.objects[key]
    mpu = obj.multipart_upload
    render json: {
      :id => mpu.id
    }
  end

所以现在客户端有了多部分上传id,她可以用浏览器将部分上传到aws。我希望创建另一个动作,一旦上传完成,就会组装零件。类似于:

  def assemble
    s3 = AWS::S3.new
    bucket = s3.buckets["my_bucket"]
    key = params['key']
    bucket.objects[key].multipart_upload.complete
    render json: { :status => "all good" }
  end

但这不起作用。如何检索对multipartUpload对象的引用,或者创建一个带有键或id的新引用,以便对其调用"complete"方法?任何见解都值得赞赏

我在Client类的文档中找到了这个方法,并使其工作如下:

client = AWS::S3::Client.new
# reassemble partsList
partsList = []
params[:partsList].each do |key, pair|
  partsList.push pair
end
options = {
  :bucket_name => 'my_bucket',
  :key => params[:key],
  :upload_id => params[:upload_id],
  :parts => partsList
}
client.complete_multipart_upload(options)

最新更新