Computing Magazine

How to Upload and Download Images in Amazon S3 Bucket Using Java

Posted on the 22 May 2013 by Abhishek Somani @somaniabhi
Upload and Download in amazon s3 bucket is very simple using AWS SDK. First create a properties file which will store your amazon s3 credentials.
# Fill in your AWS Access Key ID and Secret Access Key
# http://aws.amazon.com/security-credentials
accessKey=your AccessKey
secretKey=Your Secret key

Now for upload a file , create a PutObjectRequest specifying all the required attributes like this :
package com.test;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.amazonaws.services.s3.model.PutObjectResult;

public class UploadFile {

 public static void main(String[] args) throws IOException {
  String existingBucketName = "";
  String keyName = "mypic.JPG";
  
  String filePath = "E://Pics//mypic.JPG";
  String amazonFileUploadLocationOriginal=existingBucketName+"/";
  

  AmazonS3 s3Client = new AmazonS3Client(new PropertiesCredentials(UploadFile.class.getResourceAsStream("AwsCredentials.properties")));

  FileInputStream stream = new FileInputStream(filePath);
  ObjectMetadata objectMetadata = new ObjectMetadata();
  PutObjectRequest putObjectRequest = new PutObjectRequest(amazonFileUploadLocationOriginal, keyName, stream, objectMetadata);
  PutObjectResult result = s3Client.putObject(putObjectRequest);
  System.out.println("Etag:" + result1.getETag() + "-->" + result);

 }
 
}

Downloading the file is also very simple . Here is the sample file .
package com.test;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.Bucket;
import com.amazonaws.services.s3.model.GetObjectRequest;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.services.s3.model.S3ObjectInputStream;
import com.amazonaws.services.s3.model.S3ObjectSummary;

public class DownloadUploadedFile {

 public static void main(String[] args) throws IOException {
  String existingBucketName = "";
  String keyName = "/"+"";
  
  AmazonS3 s3Client = new AmazonS3Client(new PropertiesCredentials(
    DownloadUploadedFile.class
      .getResourceAsStream("AwsCredentials.properties")));
  
  GetObjectRequest request = new GetObjectRequest(existingBucketName,
    keyName);
  S3Object object = s3Client.getObject(request);
  S3ObjectInputStream objectContent = object.getObjectContent();
  IOUtils.copy(objectContent, new FileOutputStream("D://upload//test.jpg"));

 }
}


Post Comments and suggestions !! How to Upload and Download Images in Amazon S3 Bucket Using Java

Back to Featured Articles on Logo Paperblog

Magazines