删除Amazon S3中的对象或存储桶?

its*_*sme 11 php object amazon-s3 bucket

我创造了一个名为"照片"的新亚马逊水桶.存储桶网址如下:

www.amazons3.salcaiser.com/photos
Run Code Online (Sandbox Code Playgroud)

现在我将包含文件的子文件夹上传到该存储桶中

www.amazons3.salcaiser.com/photos/thumbs/file.jpg
Run Code Online (Sandbox Code Playgroud)

我的问题是,thumbs/假设是一个新桶还是一个对象?

然后,如果我想删除整个thumbs/目录需要我先删除其中的所有文件,还是可以一次删除所有文件?

Jer*_*lom 21

在您描述的情况下,"照片"就是.S3没有子存储桶或目录.通过在对象键中使用斜杠来模拟目录."thumbs/file.jpg"是对象键,"thumbs /"将被视为键前缀.

Dagon的示例很好,并使用AWS SDK for PHP的旧版本1.x. 但是,您可以使用最新的2.4.x版AWS SDK for PHP更轻松地完成此操作,其中包括用于删除多个对象的帮助方法.

<?php

// Include the SDK. This line depends on your installation method.
require 'aws.phar';

use Aws\S3\S3Client;

$s3 = S3Client::factory(array(
    'key'    => 'your-aws-access-key',
    'secret' => 'your-aws-secret-key',
));

// Delete the objects in the "photos" bucket with the a prefix of "thumbs/"
$s3->deleteMatchingObjects('photos', 'thumbs/');
Run Code Online (Sandbox Code Playgroud)