在 Java SDK 中模拟 Azure 存储 Blob

Posted

技术标签:

【中文标题】在 Java SDK 中模拟 Azure 存储 Blob【英文标题】:Mock Azure Storage Blob in java SDK 【发布时间】:2021-11-08 13:03:23 【问题描述】:

谁能指导我如何在 Java SDK 中模拟 azure Blob Storage。

我想模拟连接字符串、SAS 令牌、端点、容器名称。如果所有这些都被模拟了,那么模拟 BlobClient 就很容易了。

参考代码是-

公共 BlobServiceClient blobServiceClient() return new BlobServiceClientBuilder().connectionString("TESTING STRING").buildClient();

【问题讨论】:

Azurite emulator 可以替代您的情况吗? 请检查是否有帮助:azuresdkdocs.blob.core.windows.net/$web/java/azure-storage-blob/… 【参考方案1】:

要解决此问题,您可以使用它们各自的变量将连接字符串、SAS 令牌、端点、ContainerName 的值保留在同一项目下的文件中。 您可以通过在代码中传递上述对象来使用以下语句模拟 blobClient。

BlobClient blobClient = new BlobClientBuilder()
    .endpoint("<your-storage-account-url>")
    .sasToken("<your-sasToken>")
    .containerName("mycontainer")
    .blobName("myblob")
    .buildClient();

// Only one "?" is needed here. If the sastoken starts with "?", please removing one "?".
BlobClient blobClient = new BlobClientBuilder()
    .endpoint("<your-storage-account-url>" + "/" + "mycontainer" + "/" + "myblob" + "?" + "<your-sasToken>")
    .buildClient();

参考:https://docs.microsoft.com/en-us/java/api/overview/azure/storage-blob-readme?view=azure-java-stable

【讨论】:

以上是关于在 Java SDK 中模拟 Azure 存储 Blob的主要内容,如果未能解决你的问题,请参考以下文章

发布时未发现 Azure SDK 存储程序集异常

Blob 存储 java sdk 由 azure AD 授权

Azure Storage Java API:检查存储帐户是不是支持安全传输或不使用 java SDK

未从 blob 上的 azure java sdk 收到元数据字段

Azure SDK 2.6 中缺少 ETW EventSource 表

Azure 存储队列 - 异地冗余