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

Amazon S3备份文件,使用Perl Net::Amazon::S3,PermanentRedirect

斜光耀
2023-03-14

我试图上传文件使用Net::Amazon::S3 Perl模块

我得到的错误类似于PermanentRedirect:您试图访问的bucket必须使用指定的endpoint寻址。请将所有未来的请求发送到此endpoint301响应。

我尝试的是

use Net::Amazon::S3;
 use Data::Dumper;
  my $aws_access_key_id     = '*******';
  my $aws_secret_access_key = '*******************';
my $bucketname = 'TESTBUCKET';
  my $s3 = Net::Amazon::S3->new(
      {   aws_access_key_id     => $aws_access_key_id,
          aws_secret_access_key => $aws_secret_access_key,
          host=>'s3-website-us-west-1.amazonaws.com ',
         retry                 => 1,
      }
  );
  my $response = $s3->buckets;
  foreach my $bucket ( @{ $response->{buckets} } ) {
      print "You have a bucket: " . $bucket->bucket . "\n";
  }
$bucket1 = $s3->bucket($bucketname);
$bucket1->add_key_filename( 'tmp.zip',"/Examples/Perl/tmp.zip",
      {'x-amz-meta-file-mtime' => 'Thu Aug  6 15:09:00 IST 2015'}
  ) or die $s3->err . ": " . $s3->errstr;

我的endpoint是s3-website-us-west-1.amazonaws.com我列出了存储桶。

但无法上传。

感谢您的帮助。

共有1个答案

郎思远
2023-03-14

以上代码是正确的,只需更改endpoint即可<代码>主机=

我们需要为区域endpoint提供主机=

 类似资料:
  • 问题内容: 尝试将文件上传到S3存储桶时遇到问题。一切正常,除了我的文件参数似乎不合适。我正在使用Amazon S3 SDK从Node.js上载到S3。 这些是我的路线设置: 这是items.upload()函数: 将param 设置为类似字符串的效果很好。根据doc,param必须获取 (缓冲区,类型数组,Blob,字符串,ReadableStream)对象数据。 但是,上传文件对象失败,并显示

  • 根据AWS文档中提供的资源,可以通过以下代码下载对象: 编辑 我将更改为,它打开了pdf,但现在我需要下载它

  • 我在尝试将文件上传到我的S3存储桶时遇到了问题。一切正常,除了我的文件参数似乎不合适。我正在使用Amazon S3 sdk从nodejs上传到s3。 以下是我的路线设置: 这是个项目。upload()函数: 将“Body”参数设置为类似“hello”的字符串可以正常工作。根据doc,Body必须获取(Buffer、类型化数组、Blob、String、ReadableStream)对象数据。但是,上

  • 我正在使用Amazon S3将文件上传到不同的文件夹。所有文件夹和文件都是公开的,任何人都可以看到。我创建了一个私人文件夹,我想把私人图像放在那里,这样只有我可以看到它们。我已经创建了一个桶策略规则,将拒绝访问该文件夹。但是我怎么才能看到文件呢?有没有这样的特殊链接https://s3.amazonaws.com/bucket/private_folder/file.jpg?secret_key=

  • 我正在使用Amazon s3,但在这里我面临两个问题 1.当我提交表单时,我不能直接将文件上传到亚马逊服务器。我的意思是我必须将图像上传到我的PHP服务器上的,然后从那里检索并将它们上传到。当我们单击提交时,有没有办法直接将图像上传到? 2.如果我在中传递,那么我可以访问或查看文件,但如果我将其公开,每个人都可以查看文件。但我需要保护所有文件并仅向经过身份验证的用户查看。有人能建议我如何解决这个问

  • 我是亚马逊和java的新手。我在这里尝试两件事。 第一-我试图在我的Amazon S3存储桶中创建一个文件夹,我已经创建并获得了凭据。 第二-我正在尝试将文件上传到这个存储桶。 根据我的理解,我可以使用putObjectRequest()方法来完成这两个任务。 用于上传文件。 我不确定我是否应该使用这种方法 仅用于创建文件夹。我正在努力学习InputSteam和ObjectMetadata。我不知