0

I am trying to upload file using Net::Amazon::S3 Perl Module

I am getting the error like PermanentRedirect: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint 301 response.

What i tried is

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;

My endpoint is s3-website-us-west-1.amazonaws.com I am listing the buckets.

But can't able to upload.

Any help appreciated.

Umesha D
  • 826
  • 1
  • 7
  • 14

1 Answers1

0

above code is correct, only you need to change the endpoint. host=>'s3-website-us-west-1.amazonaws.com ' This is Bucket end point.

We need to give the region endpoint host =>'s3-us-west-1.amazonaws.com'

Umesha D
  • 826
  • 1
  • 7
  • 14