【问题标题】:AWS::S3 rename a folderAWS::S3 重命名文件夹
【发布时间】:2011-07-26 05:21:00
【问题描述】:

我看到有一个AWS::S3::S3Object.rename,但我无法使用 文件夹

AWS::S3::Base.establish_connection!(
 :access_key_id     => APP_CONFIG[:s3_access_key_id],
 :secret_access_key => APP_CONFIG[:s3_secret_access_key]
)
AWS::S3::S3Object.rename(
 "assets/old_name_folder",
 "assets/new_name_folder",
 APP_CONFIG[:s3_bucket]
)

old_name_folder 包含文件和文件夹,我希望重命名时尊重这一点。

我正在获取:AWS::S3::NoSuchKey (The specified key does not exist.)

我不知道是我做错了什么还是无法重命名 s3 文件夹

【问题讨论】:

    标签: ruby amazon-s3


    【解决方案1】:

    documentation for AWS::S3 很好地解释了这一点。在 s3 上存储文件时,没有文件夹之类的东西。有一个桶(大概是你的APP_CONFIG[:s3_bucket]),还有对象。这就对了。没有文件夹。您的一个对象可能被命名为 /files/public/system/whatever/derp.jpg - 但那里没有文件夹,只有一个名称看起来像路径的对象,然后是对象的值(驻留在该位置的实际文件)。

    所以要回答你的问题,你不能重命名文件夹,因为 s3 上没有这样的东西。您必须重命名单个对象。

    【讨论】:

    • 很好理解,所以我必须将所有 文件路径 复制到 新文件路径 并删除 旧文件路径.
    • @fguillen - 你不必/不能删除旧的。只需重命名文件/对象。您看到的文件夹只是虚拟的 - 它们是 gui 工具解释带有/ 的文件名的方式
    • 感谢您的解释,但我必须说,在我看来,即使引擎盖下可能没有任何文件夹,它确实看起来像文件夹,如果他们让你就好了重命名 S3 面板中的“文件夹”,然后重命名所有需要它的对象。只是说
    • 您可以使用外部程序来执行此操作,我个人一直在使用3Hub
    • 我同意“它不是真的文件夹”无法解释。应该可以重命名这些“对象”或“属性”或“虚拟文件夹”或其他任何名称。事实是人们想这样做,而这样做的方法很麻烦。它们也可能不是文件夹,但肯定有一个名为“创建文件夹”的选项。
    【解决方案2】:

    您可以将对象从一个s3://[path_1] 复制到另一个s3://[path_2] 通过 AWS 控制台。 https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html

    在不同存储桶之间移动对象的示例:

    aws s3 mv s3://[s3-name1]/folder1 s3://[s3-name2]/[folder2] --recursive 
    

    或在同一个 S3 内

    aws s3 mv s3://[s3-name1]/folder1 s3://[s3-name1]/[folder2] --recursive 
    

    【讨论】:

      【解决方案3】:

      在 S3 存储桶中重命名文件夹的最简单方法是打开 AWS CLI https://docs.aws.amazon.com/cli/latest/userguide/ 或 AWS Cloud Shell https://aws.amazon.com/cloudshell/

      AWS Cloud Shell 的好处是无需配置,CloudShell 已使用您的控制台凭据进行预身份验证。 (注——该服务昨天推出)

      aws s3 --recursive mv s3:/// s3:///

      请参见下面的示例,其中我将文件夹名称“firstname”更改为“first”文件夹。此外,此命令将新文件夹中的所有对象从旧文件夹中移出。

      【讨论】:

        【解决方案4】:

        您不能这样做,因为 AWS 为每个请求定价。所以他们想要更多的行动。重命名文件夹或删除将不起作用。在您必须移动/删除等所有文件之前。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-08-17
          • 1970-01-01
          • 1970-01-01
          • 2014-09-09
          • 2011-07-28
          • 1970-01-01
          • 1970-01-01
          • 2018-06-25
          相关资源
          最近更新 更多