Java 在云中读取Azure Blob(PDF)最实用的方法是什么?
我是个初学者,以前从未处理过基于云的解决方案 我的程序使用PDFBox库从PDF中提取数据,并根据数据重命名文件。它目前都是本地的,但最终需要作为Azure功能部署。PDF将存储在Azure Blob容器中-Azure函数的Azure Blob存储触发器是选择此选项的重要原因 当然,我可以在本地下载blob并读取它,但是程序应该只在云中运行。我曾尝试使用Java直接读取blob,但这会导致数据混乱,并且与PDFbox不兼容。我现在的计划是将文件临时存储在云中的其他位置(例如OneDrive、Azure文件存储),然后尝试从那里打开它们。然而,这似乎很快就会变成一个过于混乱的解决方案。我的问题是: (1) 有没有办法将blob作为文件而不是CloudBlockBlob打开,这样就不需要执行此附加步骤 (2) 如果没有,在这种情况下,建议的临时存储是什么Java 在云中读取Azure Blob(PDF)最实用的方法是什么?,java,azure-storage-blobs,pdfbox,Java,Azure Storage Blobs,Pdfbox,我是个初学者,以前从未处理过基于云的解决方案 我的程序使用PDFBox库从PDF中提取数据,并根据数据重命名文件。它目前都是本地的,但最终需要作为Azure功能部署。PDF将存储在Azure Blob容器中-Azure函数的Azure Blob存储触发器是选择此选项的重要原因 当然,我可以在本地下载blob并读取它,但是程序应该只在云中运行。我曾尝试使用Java直接读取blob,但这会导致数据混乱,并且与PDFbox不兼容。我现在的计划是将文件临时存储在云中的其他位置(例如OneDrive、Az
(3) 是否有其他方法解决此问题?由于您正在规划Azure功能,因此可以使用直接获取字节。然后可以使用PDFBox PdfDocument加载方法直接构建对象
PDDocument.load(content)
。您不需要任何临时存储来存储要加载的文件
@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
}
由于您正在规划Azure函数,因此可以使用直接获取字节。然后可以使用PDFBox PdfDocument加载方法直接构建对象
PDDocument.load(content)
。您不需要任何临时存储来存储要加载的文件
@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
}
非常感谢!我在PDFBox里漏掉了这个documentation@AlexanderJ如果答案帮助你解决了问题,请点击复选标记。非常感谢!我在PDFBox里漏掉了这个documentation@AlexanderJ如果答案帮助您解决问题,请单击复选标记。