在云中读取Azure BlobPDF的最实用方法?

问题描述

我是一个初学者,以前从未处理过基于云的解决方案。

我的程序使用PDFBox库从PDF中提取数据,然后根据数据重命名文件。它目前全部在本地,但是最终将需要部署为Azure功能。 PDF将存储在Azure Blob容器中-Azure Functions的Azure Blob存储触发器是选择此选项的重要原因。

我当然可以在本地下载blob并阅读它,但是该程序应仅在Cloud中运行。我尝试直接使用Java读取blob,但这导致数据混乱,并且与PDFBox不兼容。我目前的计划是将文件临时存储在云中的其他位置(例如OneDrive,Azure文件存储),然后尝试从那里打开它们。但是,这似乎可以很快变成一个过于混乱的解决方案。我的问题:

(1)有什么方法可以将blob作为文件而不是CloudBlockBlob打开,因此不需要此附加步骤吗?

(2)如果否,在这种情况下建议使用什么临时存储?

(3)是否有其他方法可以解决此问题?

解决方法

由于您正在计划Azure函数,因此可以使用blob trigger/binding直接获取字节。然后,您可以使用PDFBox PdfDocument加载方法直接构建对象@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 } 。您将不需要任何临时存储来存储文件以加载该文件。

{{1}}