首页 > 解决方案 > 如何在Node.js的谷歌云存储中使用singed url上传文件后限制重新上传?

问题描述

我可以在给出的示例的帮助下 创建用于将文件上传到谷歌云存储的siged url

https://github.com/googleapis/nodejs-storage/blob/master/samples/generateV4UploadSignedUrl.js

var {Storage} = require('@google-cloud/storage')

var storage = new Storage({
    projectId: "projectId",
    credentials: {
        client_email: "clientEmail",
        private_key: "privateKey"
    }
})

var generateUploadSignedUrl = async function(bucketName, remoteFilename, expires) {
    const options = {
        version: 'v4',
        action: 'write',
        expires: expires,
        contentType: 'application/octet-stream',
      }
    var url = await storage.bucket(bucketName).file(remoteFilename).getSignedUrl(options)
    return url
}

我可以使用 singed url 上传文件。
但是我想限制上传后我不能再次上传。如何添加此类策略?

我查看了政策文件,但找不到限制重新上传的相关条件。

标签: javascriptnode.jsgoogle-cloud-storage

解决方案


这是不可能的。

如果使用 gsutil,则可以使用标志 -n。正如文档所述,“指定后,目标位置的现有文件或对象将不会被覆盖。任何被此选项跳过的项目都将被报告为被跳过”。

另一方面,使用客户端库,没有这样的事情。不过,首先,您可以检查文件是否存在,如果不存在,请复制它。


推荐阅读