Загрузка файла в Google Cloud Storage с помощью Node.js («bucketName» уже объявлено) - PullRequest
1 голос
/ 09 марта 2019

У меня первая игра с Google Cloud Storage из AWS Lambda, а также локально на моем ноутбуке. У меня есть переменные среды, установленные в Lambda, используя

GOOGLE_APPLICATION_CREDENTIALS

Однако, когда я пытаюсь загрузить файл demo.txt в zip-архив, я получаю

'bucketName' has already been declared

Я создал корзину в Google Cloud, а также включил API. Кто-нибудь может помочь исправить код? (в основном все равно берется из документов Google Cloud)

async function uploadFile(bucketName, filename) {
  // [START storage_upload_file]
  // Imports the Google Cloud client library
  const { Storage } = require('@google-cloud/storage');

  // Your Google Cloud Platform project ID
  const projectId = 'apple-ration-27434';

  // Creates a client
  const storage = new Storage();

  var bucketName = 'mybucket-saturday';
  var filename = 'demo.txt';

  // Uploads a local file to the bucket
  await storage.bucket(bucketName).upload(filename, {
    // Support for HTTP requests made with `Accept-Encoding: gzip`
    gzip: true,
    metadata: {
      // Enable long-lived HTTP caching headers
      // Use only if the contents of the file will never change
      // (If the contents will change, use cacheControl: 'no-cache')
      cacheControl: 'public, max-age=31536000',
    },
  });

  console.log(`${filename} uploaded to ${bucketName}.`);
  // [END storage_upload_file]
}

1 Ответ

1 голос
/ 09 марта 2019

У вас есть конфликт для bucketName:

  • вы получаете его в качестве аргумента uploadFile:

    async function uploadFile(bucketName, filename) {
    
  • вы также объявляете это локально внутри uploadFile:

    const bucketName = 'mynewbucket-saturday';
    

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

...