MCPcopy Index your code
hub / github.com/aws/aws-cli / UploadFilenameInputManager

Class UploadFilenameInputManager

awscli/s3transfer/upload.py:233–323  ·  view source on GitHub ↗

Upload utility for filenames

Source from the content-addressed store, hash-verified

231
232
233class UploadFilenameInputManager(UploadInputManager):
234 """Upload utility for filenames"""
235
236 @classmethod
237 def is_compatible(cls, upload_source):
238 return isinstance(upload_source, str)
239
240 def stores_body_in_memory(self, operation_name):
241 return False
242
243 def provide_transfer_size(self, transfer_future):
244 transfer_future.meta.provide_transfer_size(
245 self._osutil.get_file_size(transfer_future.meta.call_args.fileobj)
246 )
247
248 def requires_multipart_upload(self, transfer_future, config):
249 return transfer_future.meta.size >= config.multipart_threshold
250
251 def get_put_object_body(self, transfer_future):
252 # Get a file-like object for the given input
253 fileobj, full_size = self._get_put_object_fileobj_with_full_size(
254 transfer_future
255 )
256
257 # Wrap fileobj with interrupt reader that will quickly cancel
258 # uploads if needed instead of having to wait for the socket
259 # to completely read all of the data.
260 fileobj = self._wrap_fileobj(fileobj)
261
262 callbacks = self._get_progress_callbacks(transfer_future)
263 close_callbacks = self._get_close_callbacks(callbacks)
264 size = transfer_future.meta.size
265 # Return the file-like object wrapped into a ReadFileChunk to get
266 # progress.
267 return self._osutil.open_file_chunk_reader_from_fileobj(
268 fileobj=fileobj,
269 chunk_size=size,
270 full_file_size=full_size,
271 callbacks=callbacks,
272 close_callbacks=close_callbacks,
273 )
274
275 def yield_upload_part_bodies(self, transfer_future, chunksize):
276 full_file_size = transfer_future.meta.size
277 num_parts = self._get_num_parts(transfer_future, chunksize)
278 for part_number in range(1, num_parts + 1):
279 callbacks = self._get_progress_callbacks(transfer_future)
280 close_callbacks = self._get_close_callbacks(callbacks)
281 start_byte = chunksize * (part_number - 1)
282 # Get a file-like object for that part and the size of the full
283 # file size for the associated file-like object for that part.
284 fileobj, full_size = self._get_upload_part_fileobj_with_full_size(
285 transfer_future.meta.call_args.fileobj,
286 start_byte=start_byte,
287 part_size=chunksize,
288 full_file_size=full_file_size,
289 )
290

Callers 1

setUpMethod · 0.90

Calls

no outgoing calls

Tested by 1

setUpMethod · 0.72