java - 尝试在 azure 中创建新存储桶时出现 java.net.UnknownHostException
问题描述
Exception in thread "main" java.util.NoSuchElementException: An error occurred while enumerating the result, check the original exception for details.
at com.microsoft.azure.storage.core.LazySegmentedIterator.hasNext(LazySegmentedIterator.java:113)
at com.test.maven.azureBlob.main(azureBlob.java:47)
Caused by: com.microsoft.azure.storage.StorageException: The server encountered an unknown failure:
at com.microsoft.azure.storage.StorageException.translateException(StorageException.java:101)
at com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:199)
at com.microsoft.azure.storage.core.LazySegmentedIterator.hasNext(LazySegmentedIterator.java:109)
... 1 more
以上是尝试从 java 创建存储桶时遇到的异常
以下是代码 public class azureBlob { public static final String storageConnectionString = "DefaultEndpointsProtocol=http;" + "账户名=;" + "账户密钥=";
public static void main(String[] args) throws InvalidKeyException, URISyntaxException, StorageException {
// TODO Auto-generated method stub
File sourceFile = null, downloadedFile = null;
System.out.println("Azure Blob storage quick start sample");
CloudStorageAccount storageAccount;
CloudBlobClient blobClient = null;
CloudBlobContainer container=null;
storageAccount = CloudStorageAccount.parse(storageConnectionString);
blobClient = storageAccount.createCloudBlobClient();
container = blobClient.getContainerReference("quickstartcontainer");
System.out.println("Creating container: " + container.getName());
try
{
container.createIfNotExists();
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
//Listing contents of container
for (ListBlobItem blobItem : container.listBlobs()) {
System.out.println("URI of blob is: " + blobItem.getUri());
}
}
}
解决方案
我已经测试了你的代码,它工作正常。
这是我的代码供您参考:
import java.net.URISyntaxException;
import java.security.InvalidKeyException;
import com.microsoft.azure.storage.CloudStorageAccount;
import com.microsoft.azure.storage.blob.CloudBlobClient;
import com.microsoft.azure.storage.blob.CloudBlobContainer;
import com.microsoft.azure.storage.blob.ListBlobItem;
public class Main {
public static final String ConnString="DefaultEndpointsProtocol=https;AccountName=xxxxx;AccountKey=O7xB6ebGq8e86XQSy2vkvSi/x/e9l9xxxxxxxxkly1DsQPYY5dF2JrAVHtBozbJo29ZrrGJA==;EndpointSuffix=core.windows.net";
public static void main(String[] args) {
// TODO Auto-generated method stub
listBlobsOfContainer("mycontainer");
System.out.println("Success");
}
public static void listBlobsOfContainer(String containerName) {
CloudStorageAccount account = null;
CloudBlobContainer container = null;
try {
account = CloudStorageAccount.parse(ConnString);
CloudBlobClient client = account.createCloudBlobClient();
container = client.getContainerReference(containerName);
container.createIfNotExists();
}catch(Exception ex) {
ex.printStackTrace();
}
for (ListBlobItem blobItem : container.listBlobs()) {
System.out.println("URI of blob is: " + blobItem.getUri());
}
}
}
结果截图:
请确保使用最新的Java SDK,我使用的Java SDK来自: azure-storage-java
推荐阅读
- validation - lumen5.8 Validator 的“required_without”意外工作
- c++ - 如果构造函数中发生异常,如何释放动态内存?
- django - Django为什么分页不起作用?
- bash - 执行命令获取操作系统版本在使用脚本时打印两次,但实际上在执行手动时打印一次
- asp.net-mvc - 从 IP 地址远程访问本地 ASP.NET Core 应用程序?
- c# - 如何根据属性值 c#、asp.net 获取 xml 节点值?
- android - PhoneGap 应用程序允许导航的安全问题 - 空白屏幕
- bluetooth-lowenergy - BLE 状态代码“-402”是什么意思?
- javascript - 使用 jQuery 的导航隐藏菜单
- linkedin - 在“LinkedIn Marketing Developer Program”下访问人员搜索 API