在linux中,不管是否存在中间文件夹,都可以使用下面的命令创建嵌套文件夹。
mkdir -p /home/user/some_non_existing_folder1/some_non_existing_folder2/somefolder与此类似,我希望在S3中创建一个嵌套的文件夹结构,然后将我的文件放在那里
我如何使用aws cli来完成这个任务?
发布于 2022-11-04 21:46:40
文件夹实际上并不存在于亚马逊的S3中。
例如,如果您有一个空桶,您可以将一个文件上传到invoices/january.txt,invoices文件夹将奇迹般地“出现”,而不需要专门创建。
然后,如果要删除invoices/january.txt对象,那么invoices文件夹将神奇地“消失”(因为它根本不存在)。
这是因为亚马逊Key S3对象的文件名包含对象的完整路径。上面的对象不是january.txt,而是invoices/january.txt。亚马逊的S3控制台会使它看起来像是文件夹存在,但它不存在。
如果单击管理控制台中的“创建文件夹”按钮,则将创建一个具有该文件夹名称的零长度对象。这会导致文件夹“出现”,因为它包含一个文件,但是文件不会出现(当然,它会出现,但是人们会把它看作一个文件夹)。如果删除了这个零长度的对象,文件夹就会“消失”(因为它根本不存在)。
因此,如果希望在上传文件之前创建目录层次结构,可以使用与要创建的文件夹相同的名称上载零长度对象。您可以使用aws s3 cp命令上传这样的文件。
或者,只要将文件上传到希望文件显示为的地方,文件夹就会神奇地自动出现。
发布于 2022-11-05 01:43:42
# create bucket
aws s3 mb s3://main_folder
# created nested folder
aws s3api put-object --bucket main_folder --key nested1/nested2/nested3/somefoldertosync
# sync my local folder to s3
aws s3 sync /home/ubuntu/somefoldertosync s3://main_folder/nested1/nested2/nested3/somefoldertosync目前,我正以上述方式继续我的工作。
https://stackoverflow.com/questions/74317495
复制相似问题