【问题标题】:How to upload PDF file to Firebase Storage using Admin SDK Java?如何使用 Admin SDK Java 将 PDF 文件上传到 Firebase 存储?
【发布时间】:2020-05-09 00:16:55
【问题描述】:

我正在尝试使用 Eclipse Java 中的 Firebase Admin SDK 将 PDF 文件上传到 Firebase 存储。我一直在参考这个文档:https://cloud.google.com/storage/docs/uploading-objects#storage-upload-object-java。 到目前为止,我似乎能够上传文件,但 pdf 内容似乎以某种方式损坏,因为与原始大小(3028 字节)相比,大小(如 Firebase 存储中所示)更小(11 字节)。所以我尝试下载文件,结果我无法打开下载的文件。我已经实现了以下代码:

BlobId blobId = BlobId.of(bucket, folder+"/"+blobName);
        System.out.println("Blob Id:"+blobId);
        BlobInfo blobInfo = BlobInfo
                .newBuilder(blobId)
                .setContentType("application/pdf")              
                .build();
        System.out.println("Blob Info:"+blobInfo);

        Blob blob = storage.create(blobInfo, blobName.getBytes(UTF_8));
        System.out.println("BLOB:"+blob);

我无法从管理员端获取有关上传 PDF 的太多信息。我猜blobName.getBytes(UTF_8) 可能是问题所在。任何帮助表示赞赏!

【问题讨论】:

    标签: firebase google-cloud-storage firebase-storage firebase-admin


    【解决方案1】:

    好的,现在可以通过将文件路径添加到输入流并使用.readAllBytes() 方法读取文件来实现它。

    String file_path = file.getPath();
    InputStream file_input_stream = new FileInputStream(file_path);
    
    BlobId blobId = BlobId.of(bucket, folder+"/"+blobName);
    System.out.println("Blob Id:"+blobId);
    BlobInfo blobInfo = BlobInfo
                .newBuilder(blobId)
                .setContentType("application/pdf")              
                .build();
    Blob blob = storage.create(blobInfo, file_input_stream.readAllBytes());
    

    【讨论】:

    • 有添加文件的监听器吗?
    • @PembaTamang 我不确定,但我认为确定文件是否已成功添加/上传到存储的一种方法是在 Cloud/Firebase 存储更改上 [触发函数][1] . [1]:cloud.google.com/storage/docs/…
    • @PembaTamang 糟糕,我发送了错误的链接。你可以看看这个文档:firebase.google.com/docs/functions/…
    猜你喜欢
    • 2019-08-02
    • 2020-11-21
    • 2020-05-07
    • 2021-07-30
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 2021-12-07
    相关资源
    最近更新 更多