Android Firebase存储:如何在下载之前从firebase存储文件URL获取文件大小?

时间:2018-01-30 12:02:37

标签: android firebase firebase-realtime-database firebase-cloud-messaging firebase-storage

如何在下载之前从firebase存储中获取文件大小?我想向用户显示文件大小,以便他们可以看到文件的确切大小。

我查了https://firebase.google.com/docs/storage/android/download-files以检查在下载之前是否有任何方法可以获取特定文件的大小。但我没有找到任何有用的东西。

2 个答案:

答案 0 :(得分:2)

已发布在Firebase文档中,您可以通过StorageReference getMetaData()方法获取存储在FirebaseStorage上的文件的名称,大小和内容类型。根据Firebase文档,

  

文件元数据包含常用属性,例如名称,大小和   contentType(通常也称为MIME类型)除了一些之外   常见的有contentDisposition和timeCreated。这个元数据可以   使用getMetadata()从云存储引用中检索   方法

以下是如何访问存储在FirebaseStorage上的文件元数据的示例,

StorageReference storageRef = storage.getReference();
StorageReference forestRef = storageRef.child("images/forest.jpg");

forestRef.getMetadata().addOnSuccessListener(new OnSuccessListener<StorageMetadata>() {
    @Override
    public void onSuccess(StorageMetadata storageMetadata) {
        //here, storageMetadata contains all details about your file stored on FirebaseStorage
        Log.i("tag", "name of file: "+storageMetadata.getName());
        Log.i("tag", "size of file in bytes: "+storageMetadata.getSizeBytes());
        Log.i("tag", "content type of file: "+storageMetadata.getContentType());
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Uh-oh, an error occurred!
        Log.i("tag", "Exception occur while gettig metadata: "+exception.toString());
    }
});

答案 1 :(得分:2)

试试这个:

StorageReference ref = storage.getReference();
StorageReference reference = ref.child("images.jpg");

reference.getMetadata().addOnSuccessListener(new OnSuccessListener<StorageMetadata>() {
@Override
public void onSuccess(StorageMetadata storageMetadata) {
    Log.i("The size of the file is:", storageMetadata.getSizeBytes());
  }
}).addOnFailureListener(new OnFailureListener() {
   @Override
   public void onFailure(@NonNull Exception exception) {

    }
});

使用getSizeBytes(),您将能够获得文件的大小。

public long getSizeBytes ():

  

返回   存储的StorageReference对象的大小(以字节为单位)

public StorageMetadata ():

  

创建StorageMetadata对象以保存StorageReference的元数据。

有关详情,请查看:

https://developers.google.com/android/reference/com/google/firebase/storage/StorageMetadata.html https://firebase.google.com/docs/storage/android/file-metadata