http://www.perlmonks.org?node_id=11104765

coolsaurabh has asked for the wisdom of the Perl Monks concerning the following question:

Hello, I am in process of uploading file to S3 storage via Perl script. Below script is used to upload the file.However when i am trying to print the bucket and filename which is earlier uploaded,the script is throwing some error. Pls advice.
Script to upload file on S3 #!/opt/perl/bin/perl use Amazon::S3; my $file_name = "filename.txt"; my $bucketName = "forest-upload"; my $s3 = Amazon::S3->new({ aws_access_key_id => "XXX", aws_secret_access_key => "XXX", retry => 1 }); my $bucket = $s3->bucket($bucketName); $bucket->add_key_filename( $file_name, $file_name, { content_type => "text/plain", } ); Script for printing the bucket and filename #!/opt/perl/bin/perl use Amazon::S3; my $access_key = 'XXX'; my $secret_key = 'XXX'; my $conn = Amazon::S3->new({ aws_access_key_id => $access_key, aws_secret_access_key => $secret_key, secure => 1, retry => 1, }); my @buckets = @{$conn->buckets->{buckets} || []}; foreach my $bucket (@buckets) { print $bucket->bucket . "\t" . $bucket->creation_date . "\n"; }
The error which above script is throwing is "Can't use an undefined value as a HASH reference at Amazon_bucket.pl line 16."