aws s3重命名目录(对象)

时间:2015-10-27 08:41:48

标签: php amazon-web-services amazon-s3

我正在尝试重命名amazon aws s3存储桶中的目录。我知道在aws s3中没有像目录这样的东西,一切都是对象

我有像

这样的目录结构
abc/
   aaa
   bbb

现在我想通过

重命名它
  $s3->copyObject(array(
        'Bucket' => $bucket,
        'Key' => $newName,
        'CopySource' => "{$bucket}/{$currentObj}",
  ));

然后删除现有的,用新名称创建新对象,问题是

当我将abc重命名为demo之类的内容时,只需创建名为demo的新对象,该对象为空

我也知道为什么demo为空,因为有三个不同的对象

abc/
abc/aaa
abc/bbb

现在要用一个请求重命名它们,是否有类似copyMatchingObjects的内容?我的意思是我们有deleteMatchingObjects

1 个答案:

答案 0 :(得分:1)

不,您无法在一次API调用中重命名它们。你能做的最好的可能是:

  • 将abc / aaa复制到demo / aaa
  • 将abc / bbb复制到demo / bbb
  • 删除abc / aaa
  • 删除abc / bbb
  • 删除abc /(如果它确实存在)

特别是,通常不需要创建demo /.