:doc:`Bucket <index>` / Action / upload_fileobj

**************
upload_fileobj
**************



.. py:method:: S3.Bucket.upload_fileobj(Fileobj, Key, ExtraArgs=None, Callback=None, Config=None)

    
  Upload a file-like object to this bucket.
  
  The file-like object must be in binary mode.
  
  This is a managed transfer which will perform a multipart upload in
  multiple threads if necessary.
  
  Usage::
  
      import boto3
      s3 = boto3.resource('s3')
      bucket = s3.Bucket('amzn-s3-demo-bucket')
  
      with open('filename', 'rb') as data:
          bucket.upload_fileobj(data, 'mykey')
  
  :type Fileobj: a file-like object
  :param Fileobj: A file-like object to upload. At a minimum, it must
      implement the `read` method, and must return bytes.
  
  :type Key: str
  :param Key: The name of the key to upload to.
  
  :type ExtraArgs: dict
  :param ExtraArgs: Extra arguments that may be passed to the
      client operation. For allowed upload arguments see
      :py:attr:`boto3.s3.transfer.S3Transfer.ALLOWED_UPLOAD_ARGS`.
  
  :type Callback: function
  :param Callback: A method which takes a number of bytes transferred to
      be periodically called during the upload.
  
  :type Config: boto3.s3.transfer.TransferConfig
  :param Config: The transfer configuration to be used when performing the
      upload.
