繁体   English   中英

Firebase差异b / w putBytes或putfile快速上传?

[英]Firebase Difference b/w putBytes or putfile which is fast uploading?

我正在使用Cloud Storage for Firebase。 我很少混淆如何使用字节数组或文件以最快的方式上传图像文件

try {
               Uri uri = Uri.parse(UriList.get(Imagecount_update));

            bmp = MediaStore.Images.Media.getBitmap(getContentResolver(),uri);

        } catch (IOException e) {

            Log.d("PrintIOExeception","*****     "+e.toString());

            e.printStackTrace();
        }

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.JPEG, 25, baos);
        byte[] data = baos.toByteArray();

    mStorageReference = FirebaseStorage.getInstance().getReference();
            StorageReference riversRef = mStorageReference.child("images/" + String.valueOf(System.currentTimeMillis()));
            UploadTask uploadTask;
            uploadTask = riversRef.putBytes(data);

(要么)

uploadTask = riversRef.putFile(data);

哪一种是上传图片的快速方法uploadTask = riversRef.putBytes(data); uploadTask = riversRef.putFile(data);

哪一个更快就无关紧要了。 他们俩都做不同的事情。 putFile从URI(Internet上托管的文件,或客户端本地系统上文件的路径,以“ file://”为前缀)上载文件,这意味着它将文件下载到服务器。 putBytes接受文件产生的物理字节[]中的字节,并由您(或另一个客户端)提供给服务器。

此处显示了API的区别。

此外,还有putStream,它可以接受诸如内存流之类的东西,它可以使客户端上的文件处理更快,但是就实际上载的速度而言,它完全取决于客户端和客户端的连接速度。服务器上,没有一个功能比另一个功能上传/下载的速度更快。

但是,总而言之,为回答您的问题,我个人将只对图像使用putFile(),因为putFile()最有可能在后端为您处理byte []逻辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM