Amazon S3中是否有重命名文件和文件夹的功能?欢迎提出相关建议。
当前回答
在AWS控制台中,如果导航到S3,您将看到列出的文件夹。如果您导航到该文件夹,您将看到列出的对象。右键单击,可以重命名。或者,您可以选中对象前面的复选框,然后从名为ACTIONS的下拉菜单中选择重命名。刚刚为我工作,2019年3月31日
其他回答
没有办法通过GUI重命名文件夹,最快的(如果你喜欢GUI的话也是最简单的)方法是执行一个普通的旧拷贝。要实现这一点:使用GUI在S3上创建新文件夹,找到旧文件夹,选择全部,标记“复制”,然后导航到新文件夹并选择“粘贴”。完成后,删除旧文件夹。
这个简单的方法非常快,因为它是从S3复制到自身(不需要重新上传或类似的事情),而且它还维护所复制对象的权限和元数据。
下面是你如何在。net中使用S3 .NET SDK:
var client = new Amazon.S3.AmazonS3Client(_credentials, _config);
client.CopyObject(oldBucketName, oldfilepath, newBucketName, newFilePath);
client.DeleteObject(oldBucketName, oldfilepath);
附注:尽可能使用“异步”版本的客户端方法,尽管我没有这样做是为了可读性
这适用于重命名同一文件夹中的文件
aws s3 mv s3://bucketname/folder_name1/test_original.csv s3://bucket/folder_name1/test_renamed.csv
我们有两种方法可以重命名AWS S3存储上的文件-
1 .使用CLI工具-
Aws s3——递归mv s3://bucket-name/dirname/oldfile s3://bucket-name/dirname/newfile
2.使用SDK
$s3->copyObject(array(
'Bucket' => $targetBucket,
'Key' => $targetKeyname,
'CopySource' => "{$sourceBucket}/{$sourceKeyname}",));
下面是重命名s3上文件的代码示例。由于spark o/p文件,我的文件是part-000*,然后我将其复制到相同位置的另一个文件名,并删除part-000*:
import boto3
client = boto3.client('s3')
response = client.list_objects(
Bucket='lsph',
MaxKeys=10,
Prefix='03curated/DIM_DEMOGRAPHIC/',
Delimiter='/'
)
name = response["Contents"][0]["Key"]
copy_source = {'Bucket': 'lsph', 'Key': name}
client.copy_object(Bucket='lsph', CopySource=copy_source,
Key='03curated/DIM_DEMOGRAPHIC/'+'DIM_DEMOGRAPHIC.json')
client.delete_object(Bucket='lsph', Key=name)
推荐文章
- 警告:未受保护的私钥文件!当尝试SSH到Amazon EC2实例时
- 使用boto3连接CloudFront时,如何选择AWS配置文件
- 在亚马逊云服务器上设置FTP
- 无法将图像推送到Amazon ECR -由于“没有基本的身份验证凭据”而失败
- 如何测试AWS命令行工具的凭据
- 将Keypair添加到现有的EC2实例中
- AWS S3:您试图访问的桶必须使用指定的端点寻址
- 你会因为EC2上的“停止”实例而被收费吗?
- 下载一个已经上传的Lambda函数
- S3 - Access-Control-Allow-Origin头
- 何时使用Amazon Cloudfront或S3
- 如何处理错误与boto3?
- 什么数据存储在亚马逊EC2实例的临时存储?
- boto3 client NoRegionError:只能在某些时候指定区域错误
- AWS ssh访问“权限被拒绝(publickey)”问题