【问题标题】:Creating a folder via s3cmd (Amazon S3)通过 s3cmd (Amazon S3) 创建文件夹
【发布时间】:2011-07-01 21:23:02
【问题描述】:

我正在使用 s3cmd 将文件上传到我的 S3 服务器。我的问题是,当服务器上的目录不存在时,上传失败。如果文件夹不存在,我如何告诉 s3cmd 创建文件夹?我正在使用 PHP。

【问题讨论】:

  • 据我所知 s3 没有文件夹。你只要把所有东西都放在桶里。
  • 可以这样放文件吗:s3cmd put file.jpg s3://yo/folder/
  • 不,这会失败,因为“文件夹”不存在
  • 为了帮助谷歌找到这个问题,如果您尝试在“mb”命令中包含文件夹名称,则会收到错误“期望 S3 URI 只设置存储桶名称而不是...”

标签: amazon-s3 s3cmd


【解决方案1】:

我相信你应该尝试类似s3cmd put file.jpg s3://bucket/folder/file.jpg

S3没有目录的概念,整个folder/file.jpg就是文件名。如果使用 GUI 工具或其他工具从文件夹中删除 file.jpg,您很可能会看到该文件夹​​也不见了。目录的可视化表示是为了方便用户。

【讨论】:

    【解决方案2】:

    这是创建文件夹的方法:

    s3cmd put foobar s3://bucket_name/new_directory/
    

    验证:

    s3cmd la
    

    【讨论】:

      【解决方案3】:

      如果您不想上传文件,可以复制 s3 工具创建的特殊 $folder$ 对象来标记文件夹:

      s3cmd cp 's3://bucket/parent_$folder$' 's3://bucket/parent/child_$folder$'
      

      创建一个“子”“文件夹”。

      改为在子位置上传内容更容易混淆:

      s3cmd put dummy s3://bucket/parent/child/dummy
      

      Hive 似乎要求在创建外部表时存在完整的 S3 路径。这就是我看这个问题的原因:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-14
        • 2010-12-28
        • 2012-08-30
        • 1970-01-01
        • 1970-01-01
        • 2021-12-09
        • 1970-01-01
        相关资源
        最近更新 更多