我正在尝试以字节流的形式从azure blob存储读取文件,如下所示:
public static final String storageConnectionString =
"DefaultEndpointsProtocol=https;AccountName=*;AccountKey=*;EndpointSuffix=core.windows.net";
public static void main(String[] args) {
try {
CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
CloudBlobClient blobClient = storageAccount.createCloudBlobClient();
CloudBlobContainer container = blobClient.getContainerReference("inputfile");
CloudBlob blob = container.getBlockBlobReference("test.txt");
InputStream input = blob.openInputStream();
InputStreamReader inr = new InputStreamReader(input, "UTF-8");
String output = IOUtils.toString(inr);
System.out.println(output);
System.out.println("read is success");
} catch (Exception e) {
// Output the stack trace.
e.printStackTrace();
}
}
我可以从azure文件存储读取文件。我正在尝试创建类似于javawatchservice的东西,如果文件中有任何更改,我希望读取更改并打印数据,例如下面的示例,假设我在blob中有文件test.txt文件,它最初有如下数据 "Hello"
我的程序应该打印出来 "Hello"
.
一段时间后,我将更新文件与 "world"
,现在我只想打印 "world"
这是文件中的新变化。
在azure blob存储中是否可能?我看到了 azure_blob_storage
但没有找到像java watchservices这样的方法。您能帮助我如何读取azure blob存储中的文件更改吗?
1条答案
按热度按时间y3bcpkx11#
没有这种服务。但是,您可以使用事件网格(event grid)作为事件存储库,订阅azure存储帐户中的更改(new/updates blob),然后触发一些函数(可能是azure函数)将更改返回给客户端。
下面是一步一步的方法:
https://docs.microsoft.com/en-us/azure/event-grid/blob-event-quickstart-portal