小编hyo*_*yon的帖子

当文件位于本地存储时,如何使用 boto3 将文件上传到 s3

我想做的是

首先,从用户那里获取 Excel 表单的输入

其次,用python代码处理它,

第三,使用boto3上传到aws s3

但我在上传到 s3 时遇到问题

s3 = boto3.client(
"s3",
aws_access_key_id=access_key,
aws_secret_access_key=secret_key
)
bucket_resource = s3
Run Code Online (Sandbox Code Playgroud)

我首先创建了 s3 对象,然后

        excel_file = pd.read_excel(file.stream)
    try:
        result = compute.select_bestitem(excel_file, brand_name, col_name, methods, operator, value)
        filename = secure_filename(file.filename)
        bucket_resource.upload_file(
            Bucket=bucket_name,
            Filename=,
            Key=filename
        )
Run Code Online (Sandbox Code Playgroud)

我已经得到了 file = request.files['file'] 的文件,并将其传递给我之前定义的函数

现在,我要上传到S3的文件是“结果对象”,它是select_bestitem函数的结果

但我不知道要传递给 Filename 参数什么

似乎我必须为其提供文件路径,但我找不到存储在本地存储中的文件的路径

另外,我真的不确定即使我传递了正确的文件路径它是否有效,因为文件的类型

我正在尝试上传字符串

(我使用 Pandas to_csv 命令创建了“结果”对象,看起来 boto3 不知何故拒绝了这种类型)

我对 python 和 Flask 很陌生,所以任何帮助都会很棒!提前致谢 :)

python amazon-s3 amazon-web-services flask boto3

2
推荐指数
1
解决办法
8983
查看次数

标签 统计

amazon-s3 ×1

amazon-web-services ×1

boto3 ×1

flask ×1

python ×1