2017-01-04 167 views
6

我想从Firebase存储下载整个文件夹。单个文件可以通过获取DownloadURL进行下载。但它不适用于文件夹。如何从Firebase存储下载整个文件夹?

var storageRef = firebase.storage().ref(); 

    // Create a reference to the file we want to download 
    var starsRef = storageRef.child(path); 

    // Get the download URL 
    starsRef.getDownloadURL().then(function(url) { 
    // Insert url into an <img> tag to "download" 
    ImageUrl = url; 

    console.log(ImageUrl); 
    }).catch(function(error) { 
    switch (error.code) { 
     case 'storage/object_not_found': 
     // File doesn't exist 
     break; 

     case 'storage/unauthorized': 
     // User doesn't have permission to access the object 
     break; 

     case 'storage/canceled': 
     // User canceled the upload 
     break; 

     case 'storage/unknown': 
     // Unknown error occurred, inspect the server response 
     break; 
    } 
    }); 

如何从Firebase下载整个文件夹?

+0

对你的期望预期的行为是问题:所有文件的数组,其中包含的所有文件,还是其他什么东西一个压缩文件夹? –

+0

@MikeMcDonald我想下载一个包含所有文件的压缩文件夹。 – isuru

回答

3

Firebase存储中没有API下载文件夹中的所有文件。您必须逐个下载文件,或者创建一个包含所有文件的zip文件。

相关:

+0

我无法找到所有文件并从相关链接创建zip文件的方式。请给我一些提示,找到一种方法来创建一个包含所有文件的zip文件。感谢您的答复。 – isuru

0

当前有火力地堡中没有存储API调用列出文件夹中的所有文件。如果您需要此类功能,则应将文件的元数据(如下载网址)存储在可列出的地方。 Firebase Realtime Database非常适合您,并且可以让您轻松地与其他人分享网址。

你可以在我们的FriendlyPix示例应用程序中找到一个很好的(但有点涉及)这个样本。网络版的相关代码是here,但也有适用于iOS和Android的版本。

See this question

+1

您应该添加对[原始答案]的引用(http://stackoverflow.com/a/37337436/2311651) – GrafOrlov