Unix 如何使用脚本在AmazonS3中批量更改文件夹名称
我上传了一堆图片,但不小心把文件夹命名为空格。现在您无法访问它们,因为URL显然没有空格 我已经下载了aws cli,想知道如何更改文件夹名称?我已经看了文档,但仍然有问题,希望有人能帮我 我尝试了以下命令,但没有成功:Unix 如何使用脚本在AmazonS3中批量更改文件夹名称,unix,amazon-web-services,amazon-s3,aws-cli,Unix,Amazon Web Services,Amazon S3,Aws Cli,我上传了一堆图片,但不小心把文件夹命名为空格。现在您无法访问它们,因为URL显然没有空格 我已经下载了aws cli,想知道如何更改文件夹名称?我已经看了文档,但仍然有问题,希望有人能帮我 我尝试了以下命令,但没有成功: aws s3 mv“s3://mybucketname/firstfolder/second folder with spaces/”s3://mybucketname/firstfolder/secondfolderwithspaces/--recursive 如何将“带空格
aws s3 mv“s3://mybucketname/firstfolder/second folder with spaces/”s3://mybucketname/firstfolder/secondfolderwithspaces/--recursive
如何将“带空格的第二个文件夹”的名称更改为“带空格的第二个文件夹”
还有,有没有一种方法可以遍历这些文件夹?差不多
for folder in s3:/bucketname/firstfolder:
aws s3 mv "folder with spaces" folderwithspaces --recursive
URL可以有空格。你必须对它们进行编码。空格字符变为“%20”。 如果您有chrome或firefox,请打开开发工具控制台,然后键入
encodeURI("second folder with spaces")
它打印
second%20folder%20with%20spaces
对于批量重命名,它不能像在操作系统(Linux/Windows/Mac)上传统的方式那样进行。在S3上,不能重命名文件,必须复制它们。因此,您必须下载它们的内容,删除它们,并创建新文件
URL可以有空格。你必须对它们进行编码。空格字符变为“%20”。 如果您有chrome或firefox,请打开开发工具控制台,然后键入
encodeURI("second folder with spaces")
它打印
second%20folder%20with%20spaces
对于批量重命名,它不能像在操作系统(Linux/Windows/Mac)上传统的方式那样进行。在S3上,不能重命名文件,必须复制它们。因此,您必须下载它们的内容,删除它们,并创建新文件
我会通过使用boto SDK的python脚本来实现:
import boto
conn = boto.s3.connect_to_region('ap-southeast-2')
bucket = conn.get_bucket('bucket-name')
for k in bucket.list():
if ' ' in k.key:
bucket.copy_key(k.key.replace(' ', '+'), bucket.name, k.key)
bucket.delete_key(k.key)
脚本循环遍历每个对象,将其复制到一个新键(类似于文件名,但它包含包含目录名的完整路径),然后删除旧对象。它在AmazonS3中完全执行——对象的内容不会被下载/上传
修改replace命令以满足您的需要。我将通过使用boto SDK的python脚本执行此操作:
import boto
conn = boto.s3.connect_to_region('ap-southeast-2')
bucket = conn.get_bucket('bucket-name')
for k in bucket.list():
if ' ' in k.key:
bucket.copy_key(k.key.replace(' ', '+'), bucket.name, k.key)
bucket.delete_key(k.key)
脚本循环遍历每个对象,将其复制到一个新键(类似于文件名,但它包含包含目录名的完整路径),然后删除旧对象。它在AmazonS3中完全执行——对象的内容不会被下载/上传
修改replace命令以满足您的需要。您遇到了什么错误?我可以使用mv命令来完成此操作。您也可以使用一些
+
来替换空格,以消除此问题,而无需重命名文件夹。您遇到了什么错误?我可以使用mv命令来完成此操作。您也可以使用一些+
来替换空格,以消除此问题,而无需重命名文件夹