使用Google Cloud Storage JSON API跨文件夹拷贝文件报404错误求助
Google Cloud Storage 拷贝接口404错误排查步骤
- 路径编码校验
GCS JSON API的路径中,对象名称必须做URL百分号编码,对象路径中的/需替换为%2F,否则API会将/识别为URI路径分隔符,无法匹配到对应对象。你当前使用的路径中folder1/file1.txt、folder2/file2.txt未做编码,是最常见的报错原因。 - 资源存在性校验
- 确认路径中
<source_bucket>、<destination_bucket>参数值与实际存储桶名称完全匹配,同桶拷贝场景下两个参数值都应为test-bucket,存储桶名称大小写不敏感但需完全一致。 - 确认源对象
folder1/file1.txt真实存在,未被删除,GCS对象名大小写敏感,需和实际创建时的名称完全匹配。
- 确认路径中
- 权限隐含404校验
为避免泄露未授权资源的存在性,GCS对无访问权限的资源也会返回404而非403错误。请确认调用API使用的凭证具备:- 源存储桶的
storage.objects.get权限 - 目标存储桶的
storage.objects.create权限
- 源存储桶的
- 版本控制场景校验
如果源存储桶开启了对象版本控制,且你要拷贝的是非当前最新版本的对象,需要在源对象路径后追加?generation=<对应版本号>参数,否则仅会查询当前活跃版本,若活跃版本已被删除就会返回404。
正确调用示例(同桶拷贝场景)
API Endpoint - https://storage.googleapis.com/storage/v1/b/test-bucket/o/folder1%2Ffile1.txt/copyTo/b/test-bucket/o/folder2%2Ffile2.txt Method - POST
内容的提问来源于stack exchange,提问作者Mahesh
相关产品推荐
相关产品推荐

