Создать URL для загрузки после успешной загрузки

Я успешно загрузил файлы в хранилище Firebase через Google Cloud Storage через JS! Я заметил, что в отличие от файлов, загружаемых напрямую, файлы, загруженные через Google Cloud, имеют только URL-адрес хранилища, который не является полным URL-адресом, что означает, что его невозможно прочитать! Мне интересно, есть ли способ сгенерировать полный URL при загрузке для части «Download URL» фактического хранилища Firebase.

Используемый код:

    var filename = image.substring(image.lastIndexOf("/") + 1).split("?")[0];
    var gcs = gcloud.storage();
     var bucket = gcs.bucket('bucket-name-here.appspot.com');

     request(image).pipe(bucket.file('photos/' + filename).createWriteStream(
     {metadata: {contentType: 'image/jpeg'}}))
      .on('error', function(err) {})
    .on('finish', function() {



     console.log(imagealt);    


  });

Ответы на вопрос(2)

Решение Вопроса

При использовании клиента GCloud вы хотите использоватьgetSignedUrl() скачать файл, вот так:

bucket.file('photos/' + filename).getSignedUrl({
  action: 'read',
  expires: '03-17-2025'
}, function(err, url) {
  if (err) {
    console.error(err);
    return;
  }

  // The file is now available to read from this URL.
  request(url, function(err, resp) {
    // resp.statusCode = 200
  });
});
 HalesEnchanted16 июн. 2016 г., 22:30
Ты звезда или ты звезда! Большое спасибо :) Ссылка по-прежнему не отображается в хранилище Firebase, но возвращает работающий URL-адрес облака Google!
 HalesEnchanted16 июн. 2016 г., 07:08
Привет, спасибо, Майк! Как мне объединить это с createWriteStream или это должен быть код самостоятельно?
 Mike McDonald16 июн. 2016 г., 08:24
В пределахon('finish', function() {/* make the call to get the download URL */}); является вероятным местом, так как он загружен правильно в этот момент.
 Mike McDonald16 июн. 2016 г., 22:36
Не проблема. Ссылка не отображается, потому что на самом деле создается другой URL - срок действия этих ссылок истекает через некоторое время, поэтому они немного отличаются.

Вы также можете:

а) Создайте URL для загрузки через консоль Firebase

б) если вы попытаетесь получить downloadurl программно от клиента Firebase, он будет создан для вас на лету.

 Benjamin Wulfe16 июн. 2016 г., 15:49
первый должен создать «полный URL», создав токен, что делает это возможным. Что вы видите, что предполагает, что это не URL-адрес загрузки, а только токен?
 HalesEnchanted15 июн. 2016 г., 21:55
Эй, спасибо! Первый просто создает токен? Это не полный URL :( Второй звучит примерно так: как мне это сделать?
 Benjamin Wulfe16 июн. 2016 г., 15:51
второй требует использования хранилища Firebase SDK. Увидетьруководство по началу работы для получения дополнительной информации.

Ваш ответ на вопрос