You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell上传文件至AWS S3存储桶子文件夹遇问题

解决PowerShell上传S3文件时重复创建文件夹的问题

首先要明确:AWS S3不存在物理意义上的文件夹,所谓的“文件夹”只是通过对象Key的前缀来模拟显示的。比如对象Key为Folder/Subfolder/MyFile.txt,S3控制台会自动解析前缀Folder/Subfolder/并显示为层级文件夹,但这不是真实的文件夹对象。

针对你的问题,逐一分析并给出解决方案:

问题根源

你尝试的三个命令中,只有第一个是符合正确逻辑的写法,但出现“创建新文件夹”的现象,大概率是以下原因:

  • Key大小写不一致:S3的对象Key是区分大小写的,如果你原有的前缀是folder/subfolder/(小写),但命令中用了Folder/Subfolder/(大写),S3会将其识别为不同的前缀,控制台就会显示出“新文件夹”。
  • 错误命令创建了多余对象:第二个命令会将文件上传为Key是Folder/Subfolder/的对象(模拟空文件夹的对象),第三个命令会创建Key为Folder/Subfolder的无斜杠对象,这些多余对象会让控制台显示出混乱的层级结构。

正确操作步骤

  1. 使用标准命令上传:直接用第一个命令的写法,确保-Key参数中的路径和目标前缀完全一致(包括大小写):

    Write-S3Object -BucketName MyBucketName -Key Folder/Subfolder/MyFile.txt -File $filepath
    

    这个命令会直接将文件上传为Folder/Subfolder/MyFile.txt对象,不会创建额外的文件夹对象,原有的前缀层级会自动匹配显示。

  2. 清理多余对象:如果之前用错误命令创建了多余的对象(比如Folder/Subfolder/或Folder/Subfolder),可以在S3控制台或通过PowerShell命令删除这些对象,控制台的层级显示就会恢复正常。

  3. 批量上传推荐用法:如果需要批量上传文件到指定前缀下,推荐使用-KeyPrefix参数,无需手动指定每个文件的完整Key:

    Write-S3Object -BucketName MyBucketName -KeyPrefix Folder/Subfolder/ -File $filepath
    

    这个命令会自动保留原文件名,将文件上传到Folder/Subfolder/[原文件名]的路径下。

内容的提问来源于stack exchange,提问作者Tayana Barr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:17:38