我正在使用s3cmd将文件上传到我的S3服务器。我的问题是,当服务器上的目录不存在时,上传会失败。我该如何告诉s3cmd在目录不存在时创建它?我正在使用PHP。
我正在使用s3cmd将文件上传到我的S3服务器。我的问题是,当服务器上的目录不存在时,上传会失败。我该如何告诉s3cmd在目录不存在时创建它?我正在使用PHP。
我认为你应该尝试类似这样的东西:s3cmd put file.jpg s3://bucket/folder/file.jpg
。
S3没有目录的概念,整个folder/file.jpg
就是文件名。如果使用GUI工具或其他工具从文件夹内删除file.jpg,则很可能会看到该文件夹也被删除了。目录的可视表示仅供用户方便使用。
s3cmd put foobar s3://bucket_name/new_directory/
验证:
s3cmd la
如果您不想上传文件,可以复制S3工具创建的特殊$folder$对象以标记文件夹:
s3cmd cp 's3://bucket/parent_$folder$' 's3://bucket/parent/child_$folder$'
该功能会创建一个“子”文件夹。
在子位置上传内容会更加清晰易懂:
s3cmd put dummy s3://bucket/parent/child/dummy
创建外部表时,Hive似乎要求完整的S3路径存在。这就是我查看这个问题的原因 :)