通过.jpg网址下载存储的文件

时间:2017-03-18 03:08:31

标签: firebase firebase-storage

不确定提出此问题的最佳方式,但它与firebase文件存储有关

我正在使用存储在firebase上的图像,但使用的是uri所以我需要的文件不是下载URL,而是一个url,它仍然存放在firebase上。因此类似于url.jpg(类似于{{ 3}})而不是只是将图像下载到磁盘上的东西

firebase是否提供类似的内容..我找不到允许我查看firebase上托管的图片的选项..而不是下载..

希望这有道理..

2 个答案:

答案 0 :(得分:0)

您问题的简短回答是:浏览器主要根据两个标题执行操作:Content-TypeContent-Disposition。如果该文件是图片(Content-Type: image/*)并且具有Content-Disposition: attachment,则浏览器将下载该文件(可能是我们默认情况下执行的操作)。将Content-Type设置为inline,它将显示在浏览器中。

答案 1 :(得分:0)

您可以通过ref.getDownloadURL()获取下载URL。有很多不同的选项可以获取参考:

// Create a reference with an initial file path and name
var storage = firebase.storage();
var pathReference = storage.ref('images/stars.jpg');

// Create a reference from a Google Cloud Storage URI
var gsReference = storage.refFromURL('gs://bucket/images/stars.jpg')

// Create a reference from an HTTPS URL
var httpsReference = storage.refFromURL('https://firebasestorage.googleapis.com/b/bucket/o/images%20stars.jpg');

请注意,在URL中,字符是转义的URL,例如/成为%20

这是调用getDownloadURL()

的示例
storageRef.child('images/stars.jpg').getDownloadURL().then(function(url) {
  // `url` is the download URL for 'images/stars.jpg'

  // This can be downloaded directly:
  var xhr = new XMLHttpRequest();
  xhr.responseType = 'blob';
  xhr.onload = function(event) {
    var blob = xhr.response;
  };
  xhr.open('GET', url);
  xhr.send();

  // Or inserted into an <img> element:
  var img = document.getElementById('myimg');
  img.src = url;
}).catch(function(error) {
  // Handle any errors
});

在此处查看更多信息:https://firebase.google.com/docs/storage/web/download-files