我试图使用Net::Amazon::S3
来操作S3存储桶进行备份旋转。我需要做的一件事是删除包含旧备份的文件夹。但是,虽然我可以删除文件,但我无法获得删除空文件夹的代码。
例如:
our $s3 = Net::Amazon::S3->new({
aws_access_key_id => 'key_id',
aws_secret_access_key => 'access_key',
retry => 1
});
our $bucket_name = 'bucketName';
our $s3Bucket = $s3->bucket($bucket_name);
# Assume bucket 'bucketName' has the following key. This works fine:
$s3Bucket->delete_key('weeklyTest/test.pdf') or say STDERR 'File delete failed:' . $s3Bucket->errstr;
# Assume bucket 'bucketName' has the following empty key.
# This fails to happen, but without reporting any error.
$s3Bucket->delete_key('weeklyTest/') or say STDERR 'Folder delete failed:' . $s3Bucket->errstr;
是否有什么我错过了需要做的事情来获得一个"文件夹";键删除?
所有用于AWS服务的库都与AWS -cli密切相关。如果您可以使用aws-cli使事情正常工作,那么以编程方式完成相同工作的过程将是类似的。我通常使用aws-cli进行原型设计,以确保语法/选项正确,然后在代码中重复。
delete_key用于对象是一个桶,但如果你想删除桶本身,你需要使用delete_bucket。
https://metacpan.org/pod/Amazon:: S3 # delete_bucket