我试图上传一个文件到AWS S3,文件键是文件创建的日期,连接到文件本身的MD5散列。我没有问题产生哈希,但当试图上传文件,我得到以下错误。
botocore.exceptions.ClientError: An error occurred (InvalidURI) when calling the PutObject operation: Couldn't parse the specified URI.
我试图上传的文件是一个下载的网页。 这是我的代码
#new_page_content holds the downloaded html file I'm trying to upload.
new_page_content_encode("UTF-8")
current_time = time.strftime("%Y_%m_%d_%H_%M_%S_", time.gmtime())
md5_hash_func = hashlib.md5()
md5_hash_func.update(new_page_content.encode("UTF-8"))
hashed_string = md5_hash_func.digest()
key_string = current_time + hashed_string
os.remove(LOCAL_PATH)
new_local_file = io.open(LOCAL_PATH, mode="w", encoding="utf-8")
new_local_file.write(new_page_content)
new_local_file.close()
#Uploading starts here
s3 = boto3.client(
's3',
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
)
data = open(LOCAL_PATH, "rb")
s3.upload_fileobj(data, BUCKET, key_string)
data.close()
我很确定问题是我使用了文档中定义的不安全的字母。我想知道是否有能力在上传文件时绕过它? 我曾遇到过类似的问题,但我不知道如何将解决方案转换为上传。 问题来源StackOverflow 地址:/questions/59378498/trying-to-upload-a-filename-that-has-been-hashed-to-aws-s3-bucket
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。