Как загрузить файл изображения в Google Storage Bucket из функции Google Cloud - PullRequest
0 голосов
/ 21 октября 2019

У меня есть функция Google Cloud, которая делает снимок URL-адреса, и мне нужно загрузить это изображение в облако Google Bucket из функции Google Cloud.

Я попытался загрузить его, используя приведенный ниже код, но это не такне работает и выдает ошибку

    /**
     * Responds to any HTTP request.
     *
     * @param {!express:Request} req HTTP request context.
     * @param {!express:Response} res HTTP response context.
     */
    exports.takeScreenshot = (req, res) => {

    const Screenshot = require('url-to-screenshot')
    const Storage = require('@google-cloud/storage')
    const fs = require('fs')
    const bucketName="screenshot_bucket_mujahid"
    new Screenshot('http://ghub.io/')
      .width(800)
      .height(600)
      .capture()
      .then(img =>
        Storage
        .bucket(bucketName)
        .upload(img,"mujahid.jpg"))
        console.log('open example.png')
      })

      let message = req.query.message || req.body.message || 'Hello World!';
      res.status(200).send(message);
       };

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Ваш код содержит синтаксическую ошибку. Вместо:

.then(img =>
        Storage
        .bucket(bucketName)
        .upload(img,"mujahid.jpg"))
        console.log('open example.png')
      })

может быть правильным код:

.then(img =>
   {
     Storage
       .bucket(bucketName)
       .upload(img,"mujahid.jpg");
     console.log('open example.png');
   });
0 голосов
/ 21 октября 2019

Попробуйте что-то вроде этого:

const {Storage} = require('@google-cloud/storage');
const storage = new Storage();
const bucketName = ' something ' // bucket you want to upload to
const fileName = ' some path ' // PATH of the file

await storage.bucket(bucketName).upload(filename, {
gzip: true,
metadata: { 
 cacheControl: 'no-cache'
 },
});

Итак, учтите, что для функции загрузки вы должны передать полный путь к файлу, который хотите загрузить.

Если загрузкавсе еще не работает, проверьте, нет ли у вас проблем с правами в вашем GCS ведре. Попробуйте сделать данные общедоступными и повторите попытку загрузки. Но, скорее всего, если ваш файл не загружен и вы не получили ошибку, возможно, что-то застряло в этой части кода:

new Screenshot('http://ghub.io/')
  .width(800)
  .height(600)
  .capture()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...