java - 在 S3 存储桶中使用特殊字符创建子文件夹?
问题描述
我有一个要求,比如创建一个像“test+++”这样的子文件夹,但是当我使用这个名称时,会以名称“test%2B%2B%2B”创建一个子文件夹。我尝试了 url 编码和转义特殊字符,但没有成功。我正在使用 Amazon multipart 上传视频。
s3key =URLEncoder.encode("/test123+++/0b14e09f0fe17fe715dec857e3fd2efa.mp4", "UTF-8");
InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest(s3bucketName, s3key);
initRequest.withObjectMetadata(md);
configureInitiateRequest(initRequest);
InitiateMultipartUploadResult initResponse = s3Client.initiateMultipartUpload(initRequest);
有谁知道如何使用 java 在 S3 存储桶中创建具有特殊字符“test+++”的子文件夹。
解决方案
根据 AWS S3 的文档:
https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
考虑以下限制:
存储桶名称必须符合 DNS 命名约定。
话虽如此,您还可以查看 DNS 命名语法的文档:https ://en.wikipedia.org/wiki/Domain_Name_System
通常这些名称应该映射为一个文本字符串,包括来自alphabet (a-z)
, digits/numbers (0-9)
, minus sign (-)
, 和period (.)
用于分隔的字符。