27

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

4

3 回答 3

48

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

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

于 2011-07-01T22:05:49.093 回答
3

这是创建文件夹的方法:

s3cmd put foobar s3://bucket_name/new_directory/

验证:

s3cmd la
于 2018-01-26T19:21:47.010 回答
2

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

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

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

相反,在子位置上传一些东西不会那么混乱:

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

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

于 2012-03-06T08:55:27.307 回答