要解决包含空格的文件名的问题,可以使用以下代码示例:
import urllib.parse
import boto3
# 创建S3客户端
s3 = boto3.client('s3')
# 原始文件名(包含空格)
file_name = 'my file.txt'
# 对文件名进行URL编码
encoded_file_name = urllib.parse.quote(file_name)
# 获取文件
response = s3.get_object(Bucket='my_bucket', Key=encoded_file_name)
# 保存文件到本地
with open(file_name, 'wb') as f:
f.write(response['Body'].read())
在上述示例中,我们使用了urllib.parse.quote()
函数对文件名进行URL编码,将空格转换为%20
。然后,我们使用boto3
库创建了一个S3客户端,并使用编码后的文件名调用get_object()
方法来获取文件。最后,我们将文件保存到本地。
请注意,你需要将my_bucket
替换为你的S3存储桶的名称,并确保你的AWS凭证有效。