这是我的代码
import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3Client;
public class AwsS3Helper
{
private AmazonS3 s3Client;
public AwsS3Helper()
{
try
{
AWSCredentials credentials = new PropertiesCredentials ....
s3Client = new AmazonS3Client( credentials );
s3Client.putObject(putObjectRequest);
我想知道的是,这是异步还是同步操作?我使用的是DynamoDB,它有2个不同的客户端,一个异步和一个同步,但我没有在Amazon SDK中看到任何其他S3Client
答案 0 :(得分:5)
此声明来自文档指向同步操作。此外,它不会为结果的异步指示采取任何参数。
“Amazon S3从不存储部分对象;如果在此调用期间未抛出异常,则存储整个对象。” http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3Client.html#putObject(com.amazonaws.services.s3.model.PutObjectRequest)
答案 1 :(得分:0)
我认为TransferUtility就是你想要的:
答案 2 :(得分:0)
它不是异步的,尽管SDK具有其他服务的异步客户端。 这也已在此处确认(https://github.com/aws/aws-sdk-java/issues/140)
但还请注意,在新版本的sdk(2.0)中,您具有s3的异步客户端 (https://github.com/aws/aws-sdk-java-v2)。