Amazon S3中是否有重命名文件和文件夹的功能?欢迎提出相关建议。
当前回答
S3DirectoryInfo有一个MoveTo方法,它将把一个目录移动到另一个目录,这样移动的目录将成为另一个目录的子目录,其名称与原来的目录相同。
下面的扩展方法将一个目录移动到另一个目录,即移动的目录将成为另一个目录。它实际上所做的是创建新目录,将旧目录中的所有内容移到该目录中,然后删除旧目录。
public static class S3DirectoryInfoExtensions
{
public static S3DirectoryInfo Move(this S3DirectoryInfo fromDir, S3DirectoryInfo toDir)
{
if (toDir.Exists)
throw new ArgumentException("Destination for Rename operation already exists", "toDir");
toDir.Create();
foreach (var d in fromDir.EnumerateDirectories())
d.MoveTo(toDir);
foreach (var f in fromDir.EnumerateFiles())
f.MoveTo(toDir);
fromDir.Delete();
return toDir;
}
}
其他回答
S3中没有重命名文件的直接方法。你所要做的就是复制现有文件的新名称(只要设置目标键),然后删除旧的。
下面是你如何在。net中使用S3 .NET SDK:
var client = new Amazon.S3.AmazonS3Client(_credentials, _config);
client.CopyObject(oldBucketName, oldfilepath, newBucketName, newFilePath);
client.DeleteObject(oldBucketName, oldfilepath);
附注:尽可能使用“异步”版本的客户端方法,尽管我没有这样做是为了可读性
这是现在可能的文件,选择文件,然后选择操作>重命名在GUI。
要重命名文件夹,你必须创建一个新文件夹,并选择旧文件夹的内容并复制/粘贴它(再次在“操作”下)
aws s3 cp s3://source_folder/ s3://destination_folder/ --recursive
aws s3 rm s3://source_folder --recursive
要重命名文件夹(从技术上讲,文件夹是一组对象,以公共前缀作为键),您可以使用aws CLI move命令带——recursive选项。
aws s3 mv s3://bucket/old_folder s3://bucket/new_folder --recursive
推荐文章
- 我如何获得亚马逊的AWS_ACCESS_KEY_ID ?
- 如何使所有对象在AWS S3桶公共默认?
- 为什么我应该使用亚马逊Kinesis而不是SNS-SQS?
- 如何重命名AWS S3 Bucket
- AWS ECS中的任务和服务之间有什么区别?
- 亚马逊SimpleDB vs亚马逊DynamoDB
- 亚马逊ECS和亚马逊EC2有什么区别?
- 我如何知道我在S3桶中存储了多少对象?
- S3 Bucket操作不应用于任何资源
- 将AWS凭证传递给Docker容器的最佳方法是什么?
- 当权限为S3时,AccessDenied for ListObjects for S3 bucket:*
- 电子邮件地址未验证(AWS SES)
- 使用Boto3将S3对象作为字符串打开
- AWS VPC - Internet网关vs. NAT
- 如何在AWS Lambda中加载npm模块?