首页 > 解决方案 > 在 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+++”的子文件夹。

标签: javaamazon-web-servicesamazon-s3

解决方案


根据 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 (.)用于分隔的字符。


推荐阅读