Amazon S3中 bucket name does not follow Amazon S3 standards. For more information refer

在用minio进行存储中遇到的问题,问题是在创建桶的名称的时候发现的错误:

查看官方文档,翻译过来就是下面这几点

以下规则适用于在 Amazon S3 中命名存储桶:

        1、存储桶名称的长度必须介于 3(分钟)到 63(最大)个字符之间。

        2、存储桶名称只能由小写字母、数字、点 (.) 和连字符组成 (-).

        3、存储桶名称必须以字母或数字开头和结尾。

        4、存储桶名称不得包含两个相邻的句点。

        5、存储桶名称不得格式化为 IP 地址(例如, 192.168.5.4).

        6、存储桶名称不得以前缀 开头。xn--

        7、存储桶名称不得以前缀和前缀开头。sthree-sthree-configurator

        8、存储桶名称不得以后缀 结尾。此后缀是 保留用于接入点别名。有关更多信息,请参阅 对 S3 存储桶使用存储桶样式别名 接入点。-s3alias

        9、存储桶名称不得以后缀 结尾。此后缀是 保留用于对象 Lambda 访问点别名。有关更多信息,请参阅 如何对 S3 存储桶使用存储桶样式别名 对象 lambda 访问点。--ol-s3

        10、存储桶名称在所有 AWS 区域的所有 AWS 账户中必须是唯一的 在分区内。分区是一组区域。AWS目前有 三个分区:(标准区域)、(中国区域)和(AWS GovCloud(美国))。awsaws-cnaws-us-gov

        11、在删除存储桶之前,同一分区中的另一个 AWS 账户不能使用该存储桶名称。

        12、与 Amazon S3 传输加速一起使用的存储桶的名称中不能包含点 (.)。为 有关传输加速的详细信息,请参阅使用 配置快速、安全的文件传输 亚马逊 S3 传输加速。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您使用的是AWS SDK for Java 2.0,您可以使用`S3TransferManager`类来下载S3存储桶的目录,并将下载的文件流传递给前端。以下是一个示例代码片段: ```java import software.amazon.awssdk.core.ResponseInputStream; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.GetObjectRequest; import software.amazon.awssdk.services.s3.model.ListObjectsRequest; import software.amazon.awssdk.services.s3.model.ListObjectsResponse; import software.amazon.awssdk.services.s3.model.S3Object; import software.amazon.awssdk.transfer.s3.S3TransferManager; S3Client s3 = S3Client.create(); // 创建S3TransferManager对象 S3TransferManager transferManager = S3TransferManager.builder() .s3Client(s3) .build(); // 创建GetObjectRequest对象 GetObjectRequest getObjectRequest = GetObjectRequest.builder() .bucket("my-bucket") .key("my-folder/") .build(); // 获取目录下的对象列表 ListObjectsRequest listObjectsRequest = ListObjectsRequest.builder() .bucket("my-bucket") .prefix("my-folder/") .build(); ListObjectsResponse listObjectsResponse = s3.listObjects(listObjectsRequest); // 遍历目录下的所有对象并下载 for (S3Object s3Object : listObjectsResponse.contents()) { // 创建GetObjectRequest对象 getObjectRequest = GetObjectRequest.builder() .bucket("my-bucket") .key(s3Object.key()) .build(); // 下载对象并获取ResponseInputStream ResponseInputStream responseInputStream = transferManager.download(getObjectRequest); // 将ResponseInputStream传递给前端 // TODO: 在此处实现将流传递给前端的逻辑 } ``` 在上述示例,`transferManager.download(getObjectRequest)`方法将目录的每个对象下载为一个`ResponseInputStream`对象。您可以在此处实现将流传递给前端的逻辑,例如将流写入HTTP响应返回给前端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值