如果我想创建一个具有如下布局的桶:
bucket/
├─ subdir-1/
│ ├─ subsubdir-1/
├─ subdir-2/
├─ subdir-3/我怎么能用cdk做这件事?或者甚至是一个yml的模板?
发布于 2022-03-30 07:22:34
正如注释中提到的,您不需要创建目录/模板。使用SDK/CLI上载对象时,它将自动创建与上载对象时使用的键相匹配的文件夹/结构。您可能可以通过CLI/SDK创建空目录,但我认为aws不会这样做,因为它不应该管理S3的内容。
如果您确实希望维护存储桶的特定布局,则可以在SDK/CLI将对象放置到S3时使用桶策略只允许某个目录。这个策略可以添加到aws(参考文献:aws-cdk-s3-docs-addPolicy)上。策略示例如下。
{
"Sid": "Layout",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject*",
"NotResource": [
"arn:aws:s3:::{BUCKET_NAME}/subdir-1/*",
"arn:aws:s3:::{BUCKET_NAME}/subdir-1/subdir-1/*",
"arn:aws:s3:::{BUCKET_NAME}/subdir-2/*",
"arn:aws:s3:::{BUCKET_NAME}/subdir-3/*",
]
}关于s3桶策略的更多详细信息:https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html
https://stackoverflow.com/questions/71652295
复制相似问题