Reviewed by Aditya Kumar · Last reviewed 2026-03-24
**Simple**: s3.upload_file('data.parquet', 'my-bucket', 'path/data.parquet')—handles multipart for >8MB. **From DataFrame**: df.to_parquet('s3://bucket/path/', engine='pyarrow') with s3fs. **Programmatic**: pyarrow read_table, write to BytesIO,...
Simple: s3.upload_file('data.parquet', 'my-bucket', 'path/data.parquet')—handles multipart for >8MB. From DataFrame: df.to_parquet('s3://bucket/path/', engine='pyarrow') with s3fs. Programmatic: pyarrow read_table, write to BytesIO, s3.put_object(Body=buffer.getvalue()). Large files: upload_file does multipart automatically; for >5GB, configure multipart threshold. Encryption: put_object(ServerSideEncryption='aws:kms'). Best practice: Use s3fs with pandas for simple; enable encryption; checksum for integrity.
Pro-Move: 'We use boto3 with custom Config(multipart_threshold=10010241024) for 100MB+ chunks—faster and resumable.' Red Flag: Using put_object for large files without multipart—will fail.
According to DataEngPrep.tech, this is one of the most frequently asked Cloud/Tools interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.