Как ограничить повторную загрузку после загрузки файла с использованием заданного URL-адреса в облачном хранилище Google в Node.js? - PullRequest
0 голосов
/ 07 мая 2020

Я могу создать подписанный URL для загрузки файла в облачный магазин Google с помощью примера, приведенного в

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
}

Я могу использовать заданный URL для загрузки файла.
Но я хочу наложить ограничение, согласно которому после загрузки я не смогу загружать снова. Как я могу добавить такую ​​политику?

Я просмотрел документ-политики , но не смог найти соответствующее условие для ограничения повторной загрузки.

1 Ответ

0 голосов
/ 08 мая 2020

Это невозможно.

Если вы используете gsutil, вы можете использовать флаг -n. Как в этой документации говорится: «Если указано, существующие файлы или объекты в месте назначения не будут перезаписаны. Любые элементы, пропущенные с помощью этой опции, будут отмечены как пропущенные».

Вкл. с другой стороны, используя клиентскую библиотеку, ничего подобного нет, тем не менее, сначала вы можете проверить, существует ли файл , а если нет, скопируйте его.

...