我已经用java轻松地将小文件上传到亚马逊s3存储桶。但是当我上传 50MB 的大文件时,花费的时间太长,我什至没有得到异常,但文件没有上传。我的代码很简单
s3client.putObject(new PutObjectRequest("dev.rivet.media.web", "all.wav",new File(file path)));
有人可以建议我解决这个问题吗
最佳答案
或者您可以查看https://github.com/minio/minio-java
Minio Java 库提供了更简单的 API 来访问 S3 兼容存储提供程序。
在此库中,putObject 通过在内部执行多部分操作来自动管理文件上传,并从中断处继续。
这是一个示例程序。
import io.minio.MinioClient;
import io.minio.errors.ClientException;
import org.xmlpull.v1.XmlPullParserException;
import java.io.FileInputStream;
import java.io.File;
import java.io.IOException;
public class PutObject {
public static void main(String[] args) throws IOException, XmlPullParserException, ClientException {
System.out.println("PutObject app");
// Set s3 endpoint, region is calculated automatically
MinioClient s3Client = new MinioClient("https://s3.amazonaws.com", "YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY");
File f = new File("C:/java/hello");
InputStream f = new FileInputStream(f);
// create object
s3Client.putObject("bucketName", "objectName", "application/octet-stream",
f.length(), f);
}
}
希望这有帮助。
关于java - 在java中将文件写入亚马逊s3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33915324/