【问题标题】:Google cloudstorage returns 404 Not Found when trying to delete from bucket尝试从存储桶中删除时,Google 云存储返回 404 Not Found
【发布时间】:2017-10-05 12:42:28
【问题描述】:

我正在尝试通过 cloudstorage api 从 Google Cloud Storage 中删除一个文件(视频),但尽管该文件存在,但我收到以下错误:

cloudstorage.delete('/catchamove-video/products/6411421952770048.mp4')

*** NotFoundError: Expect status [204] from Google Storage. But got status 404.
Path: '/catchamove-video/products/6411421952770048.mp4'.
Request headers: None.
Response headers: {'transfer-encoding': 'chunked', 'date': 'Sun, 07 May 2017 12:31:47 GMT', 'server': 'Development/2.0'}.
Body: ''.
Extra info: None.

存储桶和文件都存在于控制台上。

【问题讨论】:

  • 我们遇到了同样的问题。我们使用 laravel 和 github.com/Superbalist/laravel-google-cloud-storage 包,在服务帐户密钥 json 文件的帮助下,我们能够创建文件,但是当我们要删除文件夹时,我们得到 404 错误......我们试图添加所有存储密钥中使用的客户端电子邮件的权限,还尝试将 allUsers 权限添加到服务帐户,没有运气

标签: python-2.7 google-app-engine google-cloud-storage


【解决方案1】:

我面临同样的问题:通过 REST API 删除文件夹时出现 404。

经过一些测试,我弄清楚了如何删除 GCP 存储的文件夹 -

必须删除文件夹中的所有文件(对象),子文件夹和子文件夹和文件夹中的文件。需要注意的是,删除空文件夹时,仍然可能会出现“404 Not Found”(通常是204),忽略它,空文件夹会被实际删除。

例子:

curl -I -X DELETE -H "Authorization: Bearer <author_code>" https://www.googleapis.com/storage/v1/b/<bucket_name>/o/folder%2Fsub-folder%2Ffile1

curl -I -X DELETE -H "Authorization: Bearer <author_code>" https://www.googleapis.com/storage/v1/b/<bucket_name>/o/folder%2Fsub-folder%2Ffile2

curl -I -X DELETE -H "Authorization: Bearer <author_code>" https://www.googleapis.com/storage/v1/b/<bucket_name>/o/folder%2Fsub-folder%2F  #May get 204 or 404 response code

curl -I -X DELETE -H "Authorization: Bearer <author_code>" https://www.googleapis.com/storage/v1/b/<bucket_name>/o/folder%2F #May get 204 or 404 response code

注意:URL 中的“%2F”实际上是“/”字符

【讨论】:

  • 您的情况不同 - 尝试删除文件夹,请参阅 stackoverflow.com/questions/35655774/…
  • 我知道 GCP 存储实际上没有文件夹,但在 GCP 控制台中,它确实允许创建一个空的“文件夹”。在某些情况下,您只想删除这个 GCP 认为它不是对象的空文件夹,因此返回 404。
猜你喜欢
  • 1970-01-01
  • 2019-09-20
  • 2019-06-12
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
  • 2017-02-01
  • 2021-11-28
  • 1970-01-01
相关资源
最近更新 更多