首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在"s3同步“中包含空文件夹?

如何在"s3同步“中包含空文件夹?
EN

Stack Overflow用户
提问于 2014-12-05 04:24:34
回答 4查看 10.4K关注 0票数 3

默认情况下,"s3同步“不会在目标目录中创建空文件夹

代码语言:javascript
运行
复制
aws s3 sync s3://source-bucket s3://dest-bucket --include "*" --recursive

我已经搜索了好几个小时了,在使用"sync“或"cp”时,似乎找不到任何可以解决空文件夹/目录的问题。

fwiw,我确实看到了以下消息,可能与空文件夹有关,但很难确定,因为源存储桶相当大且笨重。

代码语言:javascript
运行
复制
Completed 4132 of 4132 part(s) with -5 file(s) remaining
EN

回答 4

Stack Overflow用户

发布于 2014-12-06 00:08:26

S3没有目录的概念。S3是一个对象存储,其中每个对象都由一个键标识。关键字可以是类似于"logs/2014/06/04/system.log“的字符串

基于S3的大多数图形用户界面(AWS CLI、AWS控制台、Cloudberry、Transmit等)将"/“字符解释为目录分隔符,并在目录结构中”按原样“显示文件列表。

然而,在内部,没有目录的概念,S3有一个平面名称空间。有关更多详细信息,请参阅http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html

了解了这一点,我对空目录不同步并不感到奇怪,因为S3上没有目录

票数 6
EN

Stack Overflow用户

发布于 2015-06-09 17:30:34

到目前为止没有办法,但功能请求是开放的,以添加复制空目录的功能。

https://github.com/aws/aws-cli/issues/912

票数 4
EN

Stack Overflow用户

发布于 2016-06-20 05:02:35

目前还没有正式的方法。

你可以使用S3cmd代替官方的亚马逊网络服务客户端,我已经读到它支持同步空目录。

或者,您可以使用bash将文件添加到空目录中:

代码语言:javascript
运行
复制
find . -type d -empty -exec touch {}/empty.txt \;

离题但相关:我不希望复制符号链接的文件(当链接的文件是本地文件时,这是默认设置),但我确实希望保留结构(--no-follow symlink只是忽略链接)。因此,使用一行代码将链接复制到文本文件中:

代码语言:javascript
运行
复制
find . -type l -exec bash -c 'readlink "$1" > "$1.symlink"' _ {} \;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27303346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档