当前位置: 首页 > 知识库问答 >
问题:

使用aws-sdk-java上传到S3存储桶时出现PermanentReDirect错误

曹高轩
2023-03-14

我正在尝试将一个文件从java类上载到aws S3。

我使用的是这里给出的精确代码

我只更改了以下部分:

private static String bucketName     = "s3-us-west-2.amazonaws.com/<my-bubket-name>";
private static String keyName        = "*** Provide key ***";
private static String uploadFileName = "/home/...<localpath>.../test123";

我不确定要在提供密钥中添加什么。但即使这样,我也会得到这样一个错误:

错误消息:存储桶在此区域中:null。请使用此区域重试请求(服务:Amazon S3;状态代码:301;错误代码:PermanentReDirect;请求ID: *******) HTTP状态代码:301 AWS错误代码:PermanentReDirect错误类型:客户端

共有3个答案

卫浩瀚
2023-03-14

确保使用了正确的区域。将区域从us-west-2更改为us-east-1对我来说很有效。

郗河
2023-03-14

您需要指定存储桶的名称。KeyName是指定存储桶中要存储文件的位置。它应该是这样的:

private static String bucketName = "xyz";// xyz is my bucket name at s3
private static String keyName = "upload/test/";// this is location where 
//file will be stored
private static String uploadFileName = "/home/...<localpath>.../test123";
阎雪峰
2023-03-14

而不是s3-us-west-2.amazonaws.com/

 类似资料:
  • 如果我能知道根本原因是什么就好了。

  • 我用的是fs。readFile读取大约700KB的本地mp4文件,AWS SDK将文件加载到我的S3存储桶中。这个过程是可行的,但文件已损坏,可能是因为S3上生成的文件大小仅为500KB左右而被截断。 我使用的代码可以很好地处理图像。只是不适用于mp4文件。这是我的代码: 我已尝试从params对象中省略ContentEncoding和/或ContentType属性。 编辑: 因此,当我conso

  • 我想从Kinesis多部分上传到我的Amazon S3存储桶。由于Amazon S3是一个文件系统,对于每个条目,它都会在给定的bucket名称下创建一个文件。 我的亚马逊S3为AWS粘合作业提供信息,因为只要亚马逊S3的特定文件夹中有新文件,它就会触发Lambda函数。对于流数据,每秒将有多个文件。 如何在 Kinesis 端控制文件的大小,以便 Kinesis 仅在达到特定阈值后推送 Amaz

  • 问题内容: 我正在尝试在AWS ECS上设置Jenkins服务器,但是我必须发出将S3挂载到我的Docker容器的信息。 谁能为我提供可以在ECS服务中安装s3存储桶的任务定义?soi可以将我的Jenkins工作区存储在s3上 问题答案: 您可以在EC2实例中安装s3fs(或者可以将自定义AMI用于ECS群集)。将S3存储桶安装在EC2实例中,然后您就可以始终共享主机路径。

  • 尝试将文件上载到S3 Bucket,我使用以下代码设置SDK: 错误日志 可能的错误: URL应基于以下表单:文档

  • 根据Amazon多部分上传文档,除最后一部分外,每个部分的大小必须至少为5MB。http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPart.html 问题是我如何通过多部分上传api将小于5MB的文件上传到AWS S3存储桶。我问这个问题的原因是,我想在上传到S3时对所有文件使用多部分上传API