使用 AWS CLI 将嵌套目录上传到 S3?
Upload nested directories to S3 with the AWS CLI?
我一直在尝试使用以下 cli 命令将静态网站上传到 s3:
aws s3 sync . s3://my-website-bucket --acl public-read
它成功上传了根目录中的每个文件,但在嵌套目录中失败,出现以下情况:
An error occurred (InvalidRequest) when calling the ListObjects operation: Missing required header for this request: x-amz-content-sha256
我在 GitHub 上找到了对这个问题的引用,但没有关于如何解决它的明确说明。
S3没有目录的概念。
S3 是一个对象存储,其中每个对象都由一个键标识。
密钥可能是 "dir1/dir2/dir3/test.txt"
这样的字符串
S3 之上的 AWS 图形用户界面将“/”字符解释为目录分隔符并显示文件列表"as is"它在目录结构中。
但是,在内部,没有目录的概念,S3 有一个扁平的命名空间。
有关详细信息,请参阅 http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html。
这就是目录未同步的原因,因为 S3 上没有目录。
此外,功能请求已在 https://github.com/aws/aws-cli/issues/912 中打开,但尚未添加。
s3 同步命令递归地将本地文件夹复制到文件夹,如 s3 对象。
即使 S3 并不真正支持文件夹,sync 命令也会创建 s3 对象,其格式将在其键中包含文件夹名称。
正如以下亚马逊支持帖子中所报告的那样"forums.aws.amazon.com/thread.jspa?threadID=235135"应该通过正确设置区域来解决该问题。
我一直在尝试使用以下 cli 命令将静态网站上传到 s3:
aws s3 sync . s3://my-website-bucket --acl public-read
它成功上传了根目录中的每个文件,但在嵌套目录中失败,出现以下情况:
An error occurred (InvalidRequest) when calling the ListObjects operation: Missing required header for this request: x-amz-content-sha256
我在 GitHub 上找到了对这个问题的引用,但没有关于如何解决它的明确说明。
S3没有目录的概念。 S3 是一个对象存储,其中每个对象都由一个键标识。 密钥可能是 "dir1/dir2/dir3/test.txt"
这样的字符串S3 之上的 AWS 图形用户界面将“/”字符解释为目录分隔符并显示文件列表"as is"它在目录结构中。
但是,在内部,没有目录的概念,S3 有一个扁平的命名空间。 有关详细信息,请参阅 http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html。
这就是目录未同步的原因,因为 S3 上没有目录。
此外,功能请求已在 https://github.com/aws/aws-cli/issues/912 中打开,但尚未添加。
s3 同步命令递归地将本地文件夹复制到文件夹,如 s3 对象。
即使 S3 并不真正支持文件夹,sync 命令也会创建 s3 对象,其格式将在其键中包含文件夹名称。
正如以下亚马逊支持帖子中所报告的那样"forums.aws.amazon.com/thread.jspa?threadID=235135"应该通过正确设置区域来解决该问题。