java - 在java中将文件写入亚马逊s3

标签 java spring file amazon-s3

我已经用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/

相关文章:

Spring 批管理 : Unable to read 663 MB flat file, OutOfMemoryError

java - Spring Security 记住我不工作

java - 在 Android 上创 build 置向导

java - 资源 ID 的整数数组返回 0

java - Spring 部分更新对象数据绑定(bind)

c++ - 我正在尝试从文件中读取字节并且制表符被跳过

file - 如何将计时器添加到批处理文件中?

android - 如何将文件存储在 SD 卡上(外部)

java - 缺少调用带有模拟实例参数的预期静态方法

java - JUnit Mockito 测试 : zero interactions