将数据上传到 S3 存储桶而不将其保存到磁盘

Upload data to S3 bucket without saving it to a disk

还有boto3方法upload_file(Filename='path'),它使用Filename参数从磁盘读取文件并将其上传到存储桶。是否可以上传数据而不将其保存到磁盘?

保存文本文件:

obj = 'some string'
bucket = 'my-bucket'
key = 'prefix/filename.txt'

boto3.client('s3').put_object(Body=obj, Bucket=bucket, Key=key)

从 pandas 数据帧保存 csv 文件:

df = my-dataframe
bucket = 'my-bucket'
key = 'prefix/filename.csv'

csv_buffer = io.StringIO()
df.to_csv(csv_buffer)
boto3.client('s3').put_object(Body=csv_buffer.getvalue(), Bucket=bucket, Key=key)