如何使用Python将同一GCS存储桶内的文件复制到同桶其他目录
同GCS存储桶内文件复制Python实现
前置准备
- 安装GCS官方Python SDK:
pip install google-cloud-storage - 完成GCP身份认证:可通过设置环境变量
GOOGLE_APPLICATION_CREDENTIALS为服务账号JSON密钥路径,本地开发时也可执行gcloud auth application-default login完成认证。
实现代码
from google.cloud import storage def copy_files_in_same_bucket(): # 初始化GCS客户端 storage_client = storage.Client() # 替换为你的实际存储桶名称 bucket_name = "your-bucket-name" bucket = storage_client.bucket(bucket_name) # 需要复制的源文件列表(桶根目录下的文件名) source_files = ["File1.jpg", "File2.jpg"] # 目标文件夹路径 target_folder = "Folder1" for file_name in source_files: # 构造源文件Blob对象 source_blob = bucket.blob(file_name) # 构造目标文件完整路径 target_blob_path = f"{target_folder}/{file_name}" # 执行复制操作,默认保留源文件 bucket.copy_blob(source_blob, bucket, target_blob_path) print(f"文件 {file_name} 已成功复制到 {target_blob_path}") if __name__ == "__main__": copy_files_in_same_bucket()
注意事项
- 该操作不会删除源路径的文件,最终生成的目录结构完全符合要求。
- 若需要复制的源文件不在桶根目录,直接修改
source_files内的文件完整路径即可。 - 单文件大小不超过5TB时可直接使用
copy_blob方法,无需额外处理分片逻辑。
内容的提问来源于stack exchange,提问作者Anubhav
相关产品推荐
相关产品推荐

