John
John

Reputation: 311

Creating a folder via s3cmd (Amazon S3)

I am using s3cmd to upload files to my S3 server. My problem is that when a directory on the server does not exist the upload fails. How can I tell s3cmd to create the folder if it does not exist? I am using PHP.

Upvotes: 29

Views: 41043

Answers (3)

Anand Kumar
Anand Kumar

Reputation: 227

This is how to create a folder:

s3cmd put foobar s3://bucket_name/new_directory/

To verify:

s3cmd la

Upvotes: 5

iggy
iggy

Reputation: 717

If you don't want to upload a file, you can copy the special $folder$ object that s3 tools create to mark folders:

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

which creates a "child" "folder".

It's less confusing to upload something in the child location instead:

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

Hive seems to require that the full S3 path exist when creating an external table. That's why I am looking at this question :)

Upvotes: 2

Sabeen Malik
Sabeen Malik

Reputation: 10880

I believe you should try something like s3cmd put file.jpg s3://bucket/folder/file.jpg.

S3 doesn't have the concept of directories, the whole folder/file.jpg is the file name. If using a GUI tool or something you delete the file.jpg from inside the folder, you will most probably see that the folder is gone too. The visual representation in terms of directories is for user convenience.

Upvotes: 51

Related Questions