首页 > 解决方案 > Google Cloud Storage - 尝试删除存在的对象时找不到

问题描述

这可能是一个错误,但我无法弄清楚。

我已成功将图像上传到带有签名 URL 的存储桶。当尝试从我的 Express 后端删除对象时,使用 Google 示例中的以下代码,我得到 Not Found,但该对象以正确的名称存在。想法?

async function deleteFile(filename) {
  console.log(filename); // correct file name as exists in bucket
  try {
    await storage
      .bucket(bucketName) // correct bucket name and subfolder 'my-image-bucket/posts'
      .file(filename)
      .delete();
  } catch (e) {
    console.log('Error message = ', e.message); // Not Found
  }
}

标签: node.jsgoogle-cloud-platform

解决方案


我看到的唯一危险信号是,“正确的存储桶名称和子文件夹'my-image-bucket/posts' ” 旁边.bucket()。您应该只将存储桶名称传递给.bucket(),然后将完整路径传递给.file().

    const bucketName = 'my-image-bucket';
    const filename = 'posts/image.jpg';
    await storage
      .bucket(bucketName)
      .file(filename)
      .delete();

推荐阅读