簡體   English   中英

Java中的目錄上載時的Amazon S3 SdkClientException

[英]Amazon S3 SdkClientException while Directory Uploading in Java

我正在使用此代碼在S3上上傳目錄。

TransferManager transferManager = new TransferManager(s3client);
MultipleFileUpload uploaded = transferManager.uploadDirectory(BUCKET_NAME, "DirectoryName", new File(uploadDirectory), true);

將Directory上載到Amazon S3存儲桶時,我收到以下異常

com.amazonaws.SdkClientException: Upload canceled
    at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:159)
    at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:47)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

此異常通常在100次嘗試中發生約10次

注意 - 上面的代碼在具有相同s3client對象的多線程環境中執行

非常感謝!

我在Java Amazon Sdk中進行研發時遇到的上述問題的解決方案。 如果您使用相同的AmazonS3Client而不是為每個線程創建不同的TransferManager實例,而是與多個線程共享相同的實例。

它不會導致任何問題,因為它是線程安全的對象,問題也解決了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM