Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 Amazon S3 bucket将文件名转换为键名_Amazon S3 - Fatal编程技术网

Amazon s3 Amazon S3 bucket将文件名转换为键名

Amazon s3 Amazon S3 bucket将文件名转换为键名,amazon-s3,Amazon S3,在我的应用程序中,我将文件保存在AmazonS3存储桶上。 我想使用文件名作为密钥。 但我不断得到错误的文件名,其中包含的字符不是英文字符或点。即使是空格也会导致异常。我尝试在文件名上使用Base64,但即使是“=”也有问题 这里的最佳做法是什么?您可以使用modified base64替换非法字符,如=。请更具体地说明您得到的确切错误。对象键可以包含任何有效的utf-8字符,尽管某些字符(如空格(ASCII 32))需要进行url转义(“百分比编码”),例如,当我试图放置一个名为%20spac

在我的应用程序中,我将文件保存在AmazonS3存储桶上。 我想使用文件名作为密钥。 但我不断得到错误的文件名,其中包含的字符不是英文字符或点。即使是空格也会导致异常。我尝试在文件名上使用Base64,但即使是“=”也有问题


这里的最佳做法是什么?

您可以使用modified base64替换非法字符,如=。请更具体地说明您得到的确切错误。对象键可以包含任何有效的utf-8字符,尽管某些字符(如空格(ASCII 32))需要进行url转义(“百分比编码”),例如,当我试图放置一个名为%20space.txt的密钥时,空格变成了
%20
+
变成了
%2B
@Michael-sqlbot,我得到了:com.amazonaws.services.s3.model.amazons3异常:我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。(服务:Amazon S3;状态代码:403;错误代码:SignatureDesNotMatch;您正在使用哪个SDK和版本,在这里?也显示您的代码?S3在处理空间方面确实有一些怪癖(最初的设计师做出了一些无效的假设,现在可能已经根深蒂固,无法修复,必须重新处理)但是,如果SDK生成的签名不正确,这不仅仅是一个怪癖。请尝试从该错误中获取实际HTTP响应正文——与S3假设的情况相比,它应该会显示您正在执行的操作。您可以使用修改后的base64替换非法字符,如=。请更具体地说明确切的错误您正在获取。对象键可以包含任何有效的utf-8字符,尽管某些字符(如空格(ASCII 32))需要url转义(“百分比编码”)例如,当我试图放置一个名为%20space.txt的密钥时,空格变成了
%20
+
变成了
%2B
@Michael-sqlbot,我得到了:com.amazonaws.services.s3.model.amazons3异常:我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法。(服务:Amazon S3;状态代码:403;错误代码:SignatureDesNotMatch;您正在使用哪个SDK和版本,在这里?也显示您的代码?S3在处理空间方面确实有一些怪癖(最初的设计师做出了一些无效的假设,现在可能已经根深蒂固,无法修复,必须重新处理)但是如果一个SDK生成了错误的签名,那就不仅仅是一个怪癖了。试着从错误中获得实际的HTTP响应体——与S3假设的情况相比,它应该会显示您正在做什么。