下载之前从 Firebase 存储中获取文件大小?我想向用户显示文件大小,以便他们可以看到文件的确切大小。
我查找了 https://firebase.google.com/docs/storage/android/download-files 以检查是否有任何方法可以在下载之前获取特定文件的大小。但我没有发现任何有用的东西。
试试这个:
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 ():
返回 存储引用对象的存储大小(以字节为单位(
public StorageMetadata ():
创建一个 StorageMetadata 对象来保存 StorageReference 的元数据。
有关更多信息,请查看以下内容:
https://developers.google.com/android/reference/com/google/firebase/storage/StorageMetadata.htmlhttps://firebase.google.com/docs/storage/android/file-metadata
正如 Firebase 文档发布的那样,您可以通过 StorageReference getMetaData()
方法获取存储在 FirebaseStorage 上的文件的名称、大小和内容类型。根据Firebase文档,
文件元数据包含通用属性,例如名称、大小和 contentType(通常称为MIME类型(除了一些较少 常见的,如内容处置和时间创建。此元数据可以 使用 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());
}
});