Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用RESTAPI将文件上载到s3 bucket_Java_Amazon S3 - Fatal编程技术网

Java 使用RESTAPI将文件上载到s3 bucket

Java 使用RESTAPI将文件上载到s3 bucket,java,amazon-s3,Java,Amazon S3,使用S3SDK进行此操作使其变得简单。但是,我们希望使用S3RESTAPI(阅读本文的一些优点) 我已经阅读了S3API文档,发现很难使用它编写代码。我完全不熟悉这种类型的编码,它使用请求参数、请求头、响应头、授权、错误代码、ACL等。它还提供了示例,但找不到如何使用这些示例和进行编码的方法 任何人都可以帮助我从哪里开始和结束,这样我就可以使用API为S3上的所有CRUD操作编写代码。上载图像文件的示例将帮助我更好地理解。如果您使用S3服务,您将更好地了解S3服务的工作原理。下面是一些如何使用S

使用S3SDK进行此操作使其变得简单。但是,我们希望使用S3RESTAPI(阅读本文的一些优点)

我已经阅读了S3API文档,发现很难使用它编写代码。我完全不熟悉这种类型的编码,它使用请求参数、请求头、响应头、授权、错误代码、ACL等。它还提供了示例,但找不到如何使用这些示例和进行编码的方法


任何人都可以帮助我从哪里开始和结束,这样我就可以使用API为S3上的所有CRUD操作编写代码。上载图像文件的示例将帮助我更好地理解。

如果您使用S3服务,您将更好地了解S3服务的工作原理。下面是一些如何使用S3服务从S3服务器创建上载删除文件的示例:-

(一)

(二)


下面简要介绍了它的工作原理。

我将在下面介绍一些基本的代码片段,您可以轻松地将其集成到代码中

获取s3客户端:

private AmazonS3 getS3Client() {
    AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(credentials)
            .withAccelerateModeEnabled(true).withRegion(Regions.US_EAST_1).build();
    return s3Client;
}
正在上载文件:

public void processOutput(FileServerDTO fileRequest) {

    try {
        AmazonS3 s3Client = getS3Client();
        s3Client.putObject(fileRequest.getBucketName(), fileRequest.getKey(), fileRequest.getFileContent(), null);
    } catch (Exception e) {
        logger.error("Exception while uploading file" + e.getMessage());
        throw e;
    }
}
下载文件:

public byte[] downloadFile(FileServerDTO fileRequest) {
    AmazonS3 s3Client = getS3Client();
    S3Object s3object = s3Client.getObject(new GetObjectRequest(fileRequest.getBucketName(), fileRequest.getKey()));
    S3ObjectInputStream inputStream = s3object.getObjectContent();
    try {
        return FileCopyUtils.copyToByteArray(inputStream);
    } catch (Exception e) {
        logger.error("Exception while downloading file" + e.getMessage());
    }
    return null;
}
FileServerDTO包含与文件信息相关的基本属性。
您可以轻松地在服务中使用这些util方法。

处理S3API是一件令人头痛的事情。如果可能,我建议使用jets3t库。sCom:请参考我提供给@JOE DAIRavindra的评论:请参考我提供给@JOE DAI的评论