Boto3在将文件上传到S3存储桶时遇到问题

奇拉格·卡拉勒(Chirag Kalal)

我编写了一个简单的脚本,其中将文件上传到s3存储桶中。我的代码如下,这很简单。

bucket = "my-bucket"
file_name = "/my-file-path/download.jpeg"
key_name = None
s3 = boto3.client("s3")

if key_name is None:
    key_name = file_name.split('/')[-1]
s3.upload_file(file_name, bucket, key_name)

因此,我想要实现的目标是,如果任何人都不会传递密钥名称,或者密钥名称为None,那么filename就会成为密钥名称并上传到s3存储桶中。

如果我通过密钥名,上述代码可以正常工作,但是当我在密钥名中通过None时,它将无法工作,并且我调试了代码,发现了这一点

-> key_name = file_name.split('/')[-1]
(Pdb) key_name
'download.jpeg'
(Pdb) next
--Call--
> /usr/lib/python3.6/threading.py(1279)_shutdown()
-> def _shutdown():
(Pdb) 
> /usr/lib/python3.6/threading.py(1285)_shutdown()
-> tlock = _main_thread._tstate_lock

最后,文件不会在s3上上传。如果有人对此有任何想法,请帮助。您的帮助将不胜感激。

挥舞着

我将其放在函数和测试中。例如:

def upload(file_name, bucket="my-bucket",key_name=None):
    if not key_name:
        key_name = file_name.split('/')[-1]
    s3 = boto3.client("s3")
    s3.upload_file(file_name, bucket, key_name)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Boto3将文件上传到带前缀的S3存储桶

使用 Boto3 和 Python 将 tar.gz 文件上传到 S3 存储桶

如何使用boto3将Github上的文件上传到AWS S3存储桶?

使用 boto3 和 python flask 将 CSV 文件上传到 S3 存储桶时出现错误 500

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

使用 boto3(python 3.x) 将文件上传到 aws s3 存储桶以保持文件结构?

尝试使用boto3将文件上传到S3时找不到文件

使用boto将csv文件上传到Amazon S3存储桶

如何使用Boto将文件上传到S3存储桶中的目录

如何使用Boto将文件上传到S3存储桶中的目录

boto3如何将dict / json输出上传到s3存储桶?

将文件上传到S3存储桶

使用Android将图像上传到s3存储桶时的授权问题

尝试直接将文件上传到Amazon S3存储桶时请求失败

Laravel cURL 错误 28,将文件上传到 aws s3 存储桶时

使用boto3将文件上传到S3中的特定文件夹

Lambda Python boto3将文件存储在S3存储桶中

在 serverless.yaml 中向 s3 存储桶添加策略时遇到问题

通过 boto3 upload_file api 将文件上传到 AWS S3 存储桶会给出“匿名用户无法启动分段上传。请进行身份验证。” 错误

如何将文件上传到S3并使用boto3使其公开?

使用Ajax和Boto3 for Django将文件上传到S3

Boto3:将文件从base64上传到S3

Python boto3:将文件上传到S3后接收versionId

使用boto3从S3存储桶下载文件时出现ValueError吗?

文件未上传到s3存储桶

亚马逊s3,将文件上传到存储桶中的文件夹中

将文件上传到 s3 存储桶、sdk php 中的特定文件夹

尝试将文件从 lambda tmp 文件夹上传到 s3 存储桶

当我使用 AWS CLI 将文件上传到 S3 存储桶时,我是什么用户?