如何使用PowerShell在S3存储桶中创建以当前日期命名的文件夹
解答
完全可以实现,且不需要提前单独创建日期命名的文件夹。
实现原理
S3是对象存储服务,没有原生的文件夹层级结构,控制台里看到的“文件夹”是对象键(Key)带统一前缀的虚拟展示效果。只要上传文件时给对象键加上当日日期的前缀,S3就会自动按前缀归类展示为对应名称的文件夹。
代码修改方案
你当前使用的是PowerShell的AWS Tools命令Write-S3Object,只需两步调整即可实现需求:
- 先生成格式化的当前日期字符串,示例用常用的
年-月-日格式,可按需调整格式规则:
# 生成日期前缀,示例输出类似 2024-05-20 $datePrefix = Get-Date -Format "yyyy-MM-dd"
- 上传文件时通过
-Key参数指定带日期前缀的对象键,完整示例如下:
foreach ($file in $yourFileList) { Write-S3Object -BucketName $bucketName -File "$Directory\$file" -Key "$datePrefix/$file" }
补充说明
- 无需提前单独创建文件夹:只要上传的对象Key包含
日期前缀/的结构,S3会自动生成对应的虚拟文件夹,不需要额外调用创建接口。 - 如果确实需要提前生成空文件夹(比如预留目录结构),可以执行以下命令上传一个空内容的前缀对象即可:
Write-S3Object -BucketName $bucketName -Key "$datePrefix/" -Content ""
- 日期格式可按需调整,比如需要精确到小时的可以改成
Get-Date -Format "yyyy-MM-dd-HH",尽量避免使用S3 Key不推荐的特殊字符即可。
内容的提问来源于stack exchange,提问作者user12532474
相关产品推荐
相关产品推荐

