0

我有一个Rails应用程序,并在控制器的行动,我可以创造一个多上传,像这样:所以现在的客户端有如何检索参考AWS :: S3 :: MultipartUpload红宝石

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对象的引用或者使用key或id创建一个新引用,以便我可以调用它的“完整”方法?任何见解表示赞赏

回答

0

我发现客户端类的文档中此方法并得到它的工作如下:

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)