Cara paling praktis untuk membaca Blob Azure (PDF) di Cloud?
Saya agak pemula dan belum pernah berurusan dengan solusi berbasis cloud sebelumnya.
Program saya menggunakan perpustakaan PDFBox untuk mengekstrak data dari PDF dan mengganti nama file berdasarkan data tersebut. Saat ini semuanya bersifat lokal, tetapi pada akhirnya perlu digunakan sebagai Fungsi Azure. PDF akan disimpan dalam Wadah Blob Azure - pemicu Penyimpanan Blob Azure untuk Fungsi Azure adalah alasan penting untuk pilihan ini.
Tentu saja saya dapat mengunduh blob secara lokal dan membacanya, tetapi program harus berjalan hanya di Cloud. Saya sudah mencoba membaca blob secara langsung menggunakan Java, tetapi ini menghasilkan data yang tidak jelas dan tidak kompatibel dengan PDFbox. Rencana saya untuk saat ini adalah menyimpan sementara file di tempat lain di Cloud (misalnya OneDrive, Penyimpanan File Azure) dan mencoba membukanya dari sana. Namun, ini sepertinya dapat dengan cepat berubah menjadi solusi yang terlalu berantakan. Pertanyaan saya:
(1) Apakah ada cara agar blob dapat dibuka sebagai File, selain CloudBlockBlob sehingga langkah tambahan ini tidak diperlukan?
(2) Jika tidak, apa penyimpanan sementara yang direkomendasikan dalam kasus ini?
(3) Apakah ada cara alternatif untuk menangani masalah ini?
Jawaban
Karena Anda merencanakan fungsi Azure, Anda dapat menggunakan pemicu / pengikatan blob untuk mendapatkan byte secara langsung. Kemudian Anda dapat menggunakan metode pemuatan PDFBox PdfDocument untuk langsung membangun objek PDDocument.load(content)
. Anda tidak memerlukan penyimpanan sementara untuk menyimpan file untuk memuatnya.
@FunctionName("blobprocessor")
public void run(
@BlobTrigger(name = "file",
dataType = "binary",
path = "myblob/{name}",
connection = "MyStorageAccountAppSetting") byte[] content,
@BindingName("name") String filename,
final ExecutionContext context
) {
context.getLogger().info("Name: " + filename + " Size: " + content.length + " bytes");
PDDocument doc = PDDocument.load(content);
// do your stuffs
}