求助:如何通过API在GCP Bucket中创建文件夹?
在GCP Cloud Storage Bucket中通过API创建“文件夹”的方法
GCP Cloud Storage本身不存在真正的文件夹结构,所有“文件夹”都是通过对象前缀模拟出来的。你可以通过创建一个以/结尾的空对象来实现类似文件夹的效果,这样在控制台和各类工具中会被识别并显示为文件夹。
以下是几种通过API/工具实现的方式:
1. 使用REST API
发送PUT请求到目标路径(结尾必须加/),并设置Content-Length: 0来上传空内容:
PUT https://storage.googleapis.com/[你的Bucket名称]/[要创建的文件夹名称]/ Content-Length: 0 Authorization: Bearer [你的访问令牌]
2. 使用Python客户端库(google-cloud-storage)
先确保安装了客户端库:pip install google-cloud-storage,然后用以下代码创建模拟文件夹:
from google.cloud import storage def create_cloud_storage_folder(bucket_name, folder_name): storage_client = storage.Client() bucket = storage_client.bucket(bucket_name) # 创建一个以/结尾的空Blob对象 folder_blob = bucket.blob(f"{folder_name}/") folder_blob.upload_from_string("") # 调用示例 create_cloud_storage_folder("my-bucket", "docs/reports")
3. 使用gcloud命令行工具(补充)
如果偏好命令行,也可以执行以下命令,本质上和API操作一致:
gsutil mkdir gs://[你的Bucket名称]/[要创建的文件夹名称]/
注意事项
- 即使不创建这个空对象,直接上传带前缀的文件(比如
docs/reports/file.pdf),控制台也会自动显示出docs/reports的层级结构,但这个“文件夹”只是逻辑上的,没有对应的实体对象。创建空对象的好处是,即使文件夹下没有文件,它也会在控制台中显示出来。 - 确保你的API调用身份(服务账号或用户账号)拥有
storage.objects.create权限,否则会返回权限错误。
内容的提问来源于stack exchange,提问作者Vino K
相关产品推荐
相关产品推荐

