Difference between upload() and putObject() for uploading a file to S3?

前端 未结 3 1516
梦如初夏
梦如初夏 2020-12-07 22:35

In the aws-sdk\'s S3 class, what is the difference between upload() and putObject()? They seem to do the same thing. Why might I prefer one over the other?

3条回答
  •  心在旅途
    2020-12-07 23:08

    When looking for the same information, I came across: https://aws.amazon.com/blogs/developer/uploading-files-to-amazon-s3/

    This source is a little dated (referencing instead upload_file() and put() -- or maybe it is the Ruby SDK?), but it looks like the putObject() is intended for smaller objects than the upload().

    It recommends upload() and specifies why:

    This is the recommended method of using the SDK to upload files to a bucket. Using this approach has the following benefits:

    • Manages multipart uploads for objects larger than 15MB.
    • Correctly opens files in binary mode to avoid encoding issues.
    • Uses multiple threads for uploading parts of large objects in parallel.

    Then covers the putObject() operation:

    For smaller objects, you may choose to use #put instead.

    EDIT: I was having problems with the .abort() operation on my .upload() and found this helpful: abort/stop amazon aws s3 upload, aws sdk javascript

    Now my various other events from https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Request.html are firing as well! With .upload() I only had 'httpUploadProgress'.

提交回复
热议问题