Chris Lu
6 years ago
3 changed files with 139 additions and 0 deletions
-
35other/java/s3copy/copier/pom.xml
-
66other/java/s3copy/copier/src/main/java/com/seaweedfs/s3/S3Copy.java
-
38other/java/s3copy/copier/src/test/java/com/seaweedfs/s3/S3CopyTest.java
@ -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> |
@ -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!"); |
||||
|
} |
||||
|
} |
@ -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 ); |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue