AWS SDK TransferManager.Upload удаляет уже загруженные части файла в случае возникновения исключения? - PullRequest
0 голосов
/ 12 февраля 2020

Я читал AWS Документацию SDK TransferManager и не смог выяснить, будут ли уже загруженные части файла удалены в случае каких-либо исключений во время загрузки. Все примеры, которые я видел до сих пор, не имеют кода очистки в случае исключения. Если части файла останутся в корзине, это может привести к потере денег, особенно если файлы большие.

Это пример из amazon docs

public static void main(String[] args) throws Exception {
    Regions clientRegion = Regions.DEFAULT_REGION;
    String bucketName = "*** Bucket name ***";
    String keyName = "*** Object key ***";
    String filePath = "*** Path for file to upload ***";

    try {
        AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                .withRegion(clientRegion)
                .withCredentials(new ProfileCredentialsProvider())
                .build();
        TransferManager tm = TransferManagerBuilder.standard()
                .withS3Client(s3Client)
                .build();

        // TransferManager processes all transfers asynchronously,
        // so this call returns immediately.
        Upload upload = tm.upload(bucketName, keyName, new File(filePath));
        System.out.println("Object upload started");

        // Optionally, wait for the upload to finish before continuing.
        upload.waitForCompletion();
        System.out.println("Object upload complete");
    } catch (AmazonServiceException e) {
        // The call was transmitted successfully, but Amazon S3 couldn't process 
        // it, so it returned an error response.
        e.printStackTrace();
    } catch (SdkClientException e) {
        // Amazon S3 couldn't be contacted for a response, or the client
        // couldn't parse the response from Amazon S3.
        e.printStackTrace();
    }
}

Нужно ли удалять уже загруженные части файла в блоке catch или AWS SDK справится с этим?

...