以下是使用Amazon S3 TransferManager上传临时文件的示例代码:
import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.transfer.TransferManager;
import com.amazonaws.services.s3.transfer.Upload;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import java.io.File;
public class S3TransferManagerExample {
public static void main(String[] args) {
String bucketName = "your-bucket-name";
String keyName = "your-object-key";
String filePath = "path/to/your/temp/file";
try {
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withCredentials(new ProfileCredentialsProvider())
.build();
TransferManager transferManager = TransferManagerBuilder.standard()
.withS3Client(s3Client)
.build();
File tempFile = new File(filePath);
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(tempFile.length());
PutObjectRequest request = new PutObjectRequest(bucketName, keyName, tempFile);
request.setMetadata(metadata);
Upload upload = transferManager.upload(request);
upload.waitForCompletion();
System.out.println("File upload completed successfully.");
} catch (AmazonServiceException e) {
// Amazon S3 service exception
e.printStackTrace();
} catch (AmazonClientException e) {
// Amazon S3 client exception
e.printStackTrace();
} catch (InterruptedException e) {
// Thread interrupted exception
e.printStackTrace();
}
}
}
请确保替换以下值:
your-bucket-name:你的存储桶名称your-object-key:你想要为上传文件设置的对象键path/to/your/temp/file:你的临时文件的路径还要确保你的AWS凭证配置正确。这个示例使用了AWS默认配置文件中的凭证。如果你没有配置默认配置文件,可以通过其他方式提供凭证。
此代码示例使用AWS SDK for Java库来创建Amazon S3客户端和TransferManager对象。它会上传指定的临时文件到指定的存储桶中,并等待上传完成。最后,它会打印出上传完成的消息。
请注意,这只是一个基本示例,你可能需要根据你的具体需求进行修改和扩展。
上一篇:Amazon S3 Transfer Manager v2.x 和元数据
下一篇:Amazon S3 图片问题 - 分享到Facebook - Meta标签"og:image" - NextJS