diff options
| author | Chris Lu <chris.lu@gmail.com> | 2018-09-02 14:19:24 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2018-09-02 14:19:24 -0700 |
| commit | 73f331df84d2b2ff1fff8cb87eae1edfbe983c2d (patch) | |
| tree | d411df05934446da3e250d68d4216833705430aa /other/java | |
| parent | 76cbe8bf3371fbdbb65cf13fe0d767164b53b151 (diff) | |
| download | seaweedfs-73f331df84d2b2ff1fff8cb87eae1edfbe983c2d.tar.xz seaweedfs-73f331df84d2b2ff1fff8cb87eae1edfbe983c2d.zip | |
add java example of copying to weed s3 end point
Diffstat (limited to 'other/java')
3 files changed, 139 insertions, 0 deletions
diff --git a/other/java/s3copy/copier/pom.xml b/other/java/s3copy/copier/pom.xml new file mode 100644 index 000000000..f8cb9e91c --- /dev/null +++ b/other/java/s3copy/copier/pom.xml @@ -0,0 +1,35 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.seaweedfs.s3</groupId> + <artifactId>copier</artifactId> + <packaging>jar</packaging> + <version>1.0-SNAPSHOT</version> + <name>copier</name> + <url>http://maven.apache.org</url> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>com.amazonaws</groupId> + <artifactId>aws-java-sdk-bom</artifactId> + <version>1.11.327</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>com.amazonaws</groupId> + <artifactId>aws-java-sdk-s3</artifactId> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> +</project> diff --git a/other/java/s3copy/copier/src/main/java/com/seaweedfs/s3/S3Copy.java b/other/java/s3copy/copier/src/main/java/com/seaweedfs/s3/S3Copy.java new file mode 100644 index 000000000..f00a0ad0a --- /dev/null +++ b/other/java/s3copy/copier/src/main/java/com/seaweedfs/s3/S3Copy.java @@ -0,0 +1,66 @@ +package com.seaweedfs.s3; + +import com.amazonaws.AmazonServiceException; +import com.amazonaws.ClientConfiguration; +import com.amazonaws.SdkClientException; +import com.amazonaws.auth.AWSCredentials; +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.client.builder.AwsClientBuilder; +import com.amazonaws.regions.Regions; +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import com.amazonaws.services.s3.model.ObjectMetadata; +import com.amazonaws.services.s3.model.PutObjectRequest; + +import java.io.File; + +/** + * Hello world! + */ +public class S3Copy { + public static void main(String[] args) { + + AWSCredentials credentials = new BasicAWSCredentials("ANY-ACCESSKEYID", "ANY-SECRETACCESSKEY"); + ClientConfiguration clientConfiguration = new ClientConfiguration(); + clientConfiguration.setSignerOverride("AWSS3V4SignerType"); + + AmazonS3 s3Client = AmazonS3ClientBuilder + .standard() + .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration( + "http://localhost:8333", Regions.US_WEST_1.name())) + .withPathStyleAccessEnabled(true) + .withClientConfiguration(clientConfiguration) + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .build(); + + String bucketName = "javabucket"; + String stringObjKeyName = "strObject2"; + String fileObjKeyName = "fileObject2"; + String fileName = args[0]; + + try { + + // Upload a text string as a new object. + s3Client.putObject(bucketName, stringObjKeyName, "Uploaded String Object v3"); + + // Upload a file as a new object with ContentType and title specified. + PutObjectRequest request = new PutObjectRequest(bucketName, fileObjKeyName, new File(fileName)); + ObjectMetadata metadata = new ObjectMetadata(); + metadata.setContentType("plain/text"); + metadata.addUserMetadata("x-amz-meta-title", "someTitle"); + request.setMetadata(metadata); + s3Client.putObject(request); + } catch (AmazonServiceException e) { + // The call was transmitted successfully, but Amazon S3 couldn't process + // it, so it returned an error response. + e.printStackTrace(); + } catch (SdkClientException e) { + // Amazon S3 couldn't be contacted for a response, or the client + // couldn't parse the response from Amazon S3. + e.printStackTrace(); + } + + System.out.println("Hello World!"); + } +} diff --git a/other/java/s3copy/copier/src/test/java/com/seaweedfs/s3/S3CopyTest.java b/other/java/s3copy/copier/src/test/java/com/seaweedfs/s3/S3CopyTest.java new file mode 100644 index 000000000..2bc89b87d --- /dev/null +++ b/other/java/s3copy/copier/src/test/java/com/seaweedfs/s3/S3CopyTest.java @@ -0,0 +1,38 @@ +package com.seaweedfs.s3; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class S3CopyTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public S3CopyTest(String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( S3CopyTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} |
