无法上传文件到 blob

问题描述 投票:0回答:1

我正在使用 azure sdk for java v11.0.1 将文件上传到 blob 存储。这个错误有时一周出现一次,它会导致应用程序中断 :

java.util.concurrent.TimeoutException: The source did not signal an event for 60 seconds and has been terminated.
2023-03-21T10:30:53.721545956Z at io.reactivex.internal.operators.single.SingleTimeout$TimeoutMainObserver.run(SingleTimeout.java:123) ~[rxjava-2.2.9.jar!/:na]
2023-03-21T10:30:53.721551557Z at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38) ~[rxjava-2.2.9.jar!/:na]
2023-03-21T10:30:53.721555757Z at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26) ~[rxjava-2.2.9.jar!/:na]
2023-03-21T10:30:53.721559957Z at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
2023-03-21T10:30:53.721563857Z at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]

应用程序在重启后工作正常。可能是什么问题 ?我正在使用 azure-storage-blob 版本 11.0.1 和 spring boot 版本 2.1.6.

java azure azure-blob-storage timeoutexception azure-sdk-for-java
1个回答
0
投票

我正在使用 azure sdk for java v11.0.1 将文件上传到 blob 存储。这个错误有时一周出现一次,它会导致应用程序中断。

java.util.concurrent.TimeoutException: The source did not signal an event for 60 seconds and has been terminated.
2023-03-21T10:30:53.721545956Z at io.reactivex.internal.operators.single.SingleTimeout$TimeoutMainObserver.run(SingleTimeout.java:123) ~[rxjava-2.2.9.jar!/:na]
2023-03-21T10:30:53.721551557Z at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38) ~[rxjava-2.2.9.jar!/:na]
2023-03-21T10:30:53.721555757Z at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26) ~[rxjava-2.2.9.jar!/:na]
2023-03-21T10:30:53.721559957Z at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
2023-03-21T10:30:53.721563857Z at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]

以上错误消息表示尝试使用适用于 Java 的 SDK 将文件上传到 AZURE 存储 时发生超时。发生超时是因为源在 60 秒内没有发出事件信号并自动终止。

我使用下面的代码将Files上传到Azure Blob Storage

import com.azure.storage.blob.BlobClient;
import com.azure.storage.blob.BlobContainerClient;
import com.azure.storage.blob.BlobServiceClient;
import com.azure.storage.blob.BlobServiceClientBuilder;


public class App {
    public static void main(String[] args) {
   String  connectStr ="DefaultEndpointsProtocol=https;AccountName=<storageaccountname>;AccountKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxL132fS9qbo2NGFL/GdLuwyWiSn+AStm9symA==;EndpointSuffix=core.windows.net";
   BlobServiceClient  blobServiceClient = new  BlobServiceClientBuilder().connectionString(connectStr).buildClient();
   String  containerName = "<containername>";
   BlobContainerClient  containerClient = blobServiceClient.getBlobContainerClient(containerName);
   String  localPath = "<localpath>;
   BlobClient  blobClient = containerClient.getBlobClient("sample09.xlsx");
   blobClient.uploadFromFile(localPath);
   System.out.println("File uploaded!!!!");;
    }
}

您需要在

pom.xml

中更改以下依赖项
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.7.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>12.21.1</version>
</dependency>

一旦运行上述代码文件就成功上传到Azure Container

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.