1234567891011121314151617181920212223242526272829 |
- def upload_file(
- self, filename, bucket, key, callback=None, extra_args=None
- ):
- """Upload a file to an S3 object.
- Variants have also been injected into S3 client, Bucket and Object.
- You don't have to use S3Transfer.upload_file() directly.
- """
- if extra_args is None:
- extra_args = {}
- self._validate_all_known_args(extra_args, self.ALLOWED_UPLOAD_ARGS)
- events = self._client.meta.events
- events.register_first(
- 'request-created.s3',
- disable_upload_callbacks,
- unique_id='s3upload-callback-disable',
- )
- events.register_last(
- 'request-created.s3',
- enable_upload_callbacks,
- unique_id='s3upload-callback-enable',
- )
- if (
- self._osutil.get_file_size(filename)
- >= self._config.multipart_threshold
- ):
- self._multipart_upload(filename, bucket, key, callback, extra_args)
- else:
- self._put_object(filename, bucket, key, callback, extra_args)
|