Как загрузить файл PDF в Firebase Storage с помощью Admin SDK Java? - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь загрузить PDF-файл в Firebase Storage, используя Firebase Admin SDK в Eclipse Java. Я имел в виду это сделать c: https://cloud.google.com/storage/docs/uploading-objects#storage -upload-object- java. До сих пор казалось, что я смог загрузить файл, НО содержимое pdf кажется каким-то образом поврежденным, так как размер (как показано в Firebase Storage) меньше (11 байт) по сравнению с исходным размером (3028 байт). Поэтому я попытался загрузить файл и, как оказалось, я не могу открыть загруженный файл. Я реализовал следующий код:

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) может быть проблемой как-то. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 22 января 2020

Хорошо, теперь все работает, добавив путь к файлу во входной поток и используя метод .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());
...