如何解决AWS S3同步丢失,无法创建根文件夹
我正在将一些文件夹归档到S3
示例:C:\UserProfile\E21126\data
....
我希望s3中有一个文件夹结构,例如UserProfiles\E21126
。
问题是它在\E21126
下创建了文件夹,而没有创建根文件夹\E21126
。
Folds1.txt
包含以下要同步的文件夹:
G:\UserProfiles\E21126
G:\UserProfiles\E47341
G:\UserProfiles\C68115
G:\UserProfiles\C30654
G:\UserProfiles\C52860
G:\UserProfiles\E47341
G:\UserProfiles\C68115
G:\UserProfiles\C30654
G:\UserProfiles\C52860
我的下面的代码:
ForEach ($Folder in (Get-content "F:\scripts\Folds1.txt")) {
aws s3 sync $Folder s3://css-lvdae1cxfs003-archive/Archive-Profiles/ --acl bucket-owner-full-control --storage-class STANDARD
}
解决方法
它将上传所有文件夹,其名称不包括路径。如果要将UserProfiles包含在S3存储桶中,则需要将其包含在密钥中。您需要使用指定的密钥名称将它们上传到S3存储桶
aws s3 sync $Folder s3://css-lvdae1cxfs003-archive/Archive-Profiles/UserProfiles --acl bucket-owner-full-control --storage-class STANDARD
如果文件的名称不是UserProfiles字符串,那么您可以获取父路径,然后获取叶子以从字符串获取用户名
PS C:\> Split-Path -Path "G:\UserProfiles\E21126"
G:\UserProfiles
PS C:\> Split-Path -Path "G:\UserProfiles" -Leaf -Resolve
UserProfiles
,
如果要将文本文件修改为包含:
E21126
E47341
C68115
然后您可以使用以下命令:
ForEach ($Folder in (Get-content "F:\scripts\Folds1.txt")) {
aws s3 sync G:\UserProfiles\$Folder s3://css-lvdae1cxfs003-archive/Archive-Profiles/$Folder/ --acl bucket-owner-full-control --storage-class STANDARD
}
请注意,文件夹名称包含在目标路径中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。