From ed7602331ede7a75d19f6b29200c84bd10d866d3 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Sun, 10 Dec 2017 12:39:56 -0800 Subject: [PATCH 01/28] Just adding a SQS example. --- build.gradle | 2 + .../java/com/amazonaws/samples/S3Sample.java | 4 +- .../samples/SQSExtendedClientExample.java | 144 ++++++++++++++++++ 3 files changed, 148 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java diff --git a/build.gradle b/build.gradle index 7f10524..04a8e3a 100644 --- a/build.gradle +++ b/build.gradle @@ -9,4 +9,6 @@ repositories { dependencies { compile 'com.amazonaws:aws-java-sdk:1.9.6' + compile 'com.amazonaws:amazon-sqs-java-extended-client-lib:1.0.1' + } \ No newline at end of file diff --git a/src/main/java/com/amazonaws/samples/S3Sample.java b/src/main/java/com/amazonaws/samples/S3Sample.java index 39beedd..7051b48 100644 --- a/src/main/java/com/amazonaws/samples/S3Sample.java +++ b/src/main/java/com/amazonaws/samples/S3Sample.java @@ -145,7 +145,7 @@ public static void main(String[] args) throws IOException { * there is no way to undelete an object, so use caution when deleting objects. */ System.out.println("Deleting an object\n"); - s3.deleteObject(bucketName, key); + //s3.deleteObject(bucketName, key); /* * Delete a bucket - A bucket must be completely empty before it can be @@ -153,7 +153,7 @@ public static void main(String[] args) throws IOException { * you try to delete them. */ System.out.println("Deleting bucket " + bucketName + "\n"); - s3.deleteBucket(bucketName); + //s3.deleteBucket(bucketName); } catch (AmazonServiceException ase) { System.out.println("Caught an AmazonServiceException, which means your request made it " + "to Amazon S3, but was rejected with an error response for some reason."); diff --git a/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java b/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java new file mode 100644 index 0000000..6912fd2 --- /dev/null +++ b/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java @@ -0,0 +1,144 @@ +package com.amazonaws.samples; + +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; +import com.amazon.sqs.javamessaging.AmazonSQSExtendedClient; +import com.amazonaws.services.sqs.AmazonSQS; +import com.amazonaws.services.sqs.AmazonSQSClient; +import org.joda.time.DateTime; +import org.joda.time.format.DateTimeFormat; +import com.amazonaws.AmazonClientException; +import com.amazonaws.auth.AWSCredentials; +import com.amazonaws.auth.profile.ProfileCredentialsProvider; +import com.amazonaws.regions.Region; +import com.amazonaws.regions.Regions; +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.AmazonS3Client; +import com.amazonaws.services.s3.model.BucketLifecycleConfiguration; +import com.amazonaws.services.s3.model.ListVersionsRequest; +import com.amazonaws.services.s3.model.ObjectListing; +import com.amazonaws.services.s3.model.S3ObjectSummary; +import com.amazonaws.services.s3.model.S3VersionSummary; +import com.amazonaws.services.s3.model.VersionListing; +import com.amazonaws.services.sqs.model.CreateQueueRequest; +import com.amazonaws.services.sqs.model.DeleteMessageRequest; +import com.amazonaws.services.sqs.model.DeleteQueueRequest; +import com.amazonaws.services.sqs.model.Message; +import com.amazonaws.services.sqs.model.ReceiveMessageRequest; +import com.amazonaws.services.sqs.model.SendMessageRequest; +import com.amazon.sqs.javamessaging.ExtendedClientConfiguration; + +public class SQSExtendedClientExample { + + private static final String s3BucketName = UUID.randomUUID() + "-" + + DateTimeFormat.forPattern("yyMMdd-hhmmss").print(new DateTime()); + + public static void main(String[] args) { + + AWSCredentials credentials = null; + + try { + credentials = new ProfileCredentialsProvider("default").getCredentials(); + } catch (Exception e) { + throw new AmazonClientException( + "Cannot load the AWS credentials from the expected AWS credential profiles file. " + + "Make sure that your credentials file is at the correct " + + "location (/home/$USER/.aws/credentials) and is in a valid format.", e); + } + + AmazonS3 s3 = new AmazonS3Client(credentials); + Region s3Region = Region.getRegion(Regions.US_WEST_2); + s3.setRegion(s3Region); + + // Set the Amazon S3 bucket name, and set a lifecycle rule on the bucket to + // permanently delete objects a certain number of days after + // each object's creation date. + // Then create the bucket, and enable message objects to be stored in the bucket. + BucketLifecycleConfiguration.Rule expirationRule = new BucketLifecycleConfiguration.Rule(); + expirationRule.withExpirationInDays(14).withStatus("Enabled"); + BucketLifecycleConfiguration lifecycleConfig = new BucketLifecycleConfiguration().withRules(expirationRule); + + s3.createBucket(s3BucketName); + s3.setBucketLifecycleConfiguration(s3BucketName, lifecycleConfig); + System.out.println("Bucket created and configured."); + + // Set the SQS extended client configuration with large payload support enabled. + ExtendedClientConfiguration extendedClientConfig = new ExtendedClientConfiguration() + .withLargePayloadSupportEnabled(s3, s3BucketName); + + AmazonSQS sqsExtended = new AmazonSQSExtendedClient(new AmazonSQSClient(credentials), extendedClientConfig); + Region sqsRegion = Region.getRegion(Regions.US_WEST_2); + sqsExtended.setRegion(sqsRegion); + + // Create a long string of characters for the message object to be stored in the bucket. + int stringLength = 300000; + char[] chars = new char[stringLength]; + Arrays.fill(chars, 'x'); + String myLongString = new String(chars); + + // Create a message queue for this example. + String QueueName = "QueueName" + UUID.randomUUID().toString(); + CreateQueueRequest createQueueRequest = new CreateQueueRequest(QueueName); + String myQueueUrl = sqsExtended.createQueue(createQueueRequest).getQueueUrl(); + System.out.println("Queue created."); + + // Send the message. + SendMessageRequest myMessageRequest = new SendMessageRequest(myQueueUrl, myLongString); + sqsExtended.sendMessage(myMessageRequest); + System.out.println("Sent the message."); + + // Receive messages, and then print general information about them. + ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(myQueueUrl); + List messages = sqsExtended.receiveMessage(receiveMessageRequest).getMessages(); + + for (Message message : messages) { + System.out.println("\nMessage received:"); + System.out.println(" ID: " + message.getMessageId()); + System.out.println(" Receipt handle: " + message.getReceiptHandle()); + System.out.println(" Message body (first 5 characters): " + message.getBody().substring(0, 5)); + } + + // Delete the message, the queue, and the bucket. + String messageReceiptHandle = messages.get(0).getReceiptHandle(); + sqsExtended.deleteMessage(new DeleteMessageRequest(myQueueUrl, messageReceiptHandle)); + System.out.println("Deleted the message."); + + sqsExtended.deleteQueue(new DeleteQueueRequest(myQueueUrl)); + System.out.println("Deleted the queue."); + + //deleteBucketAndAllContents(s3); + System.out.println("Deleted the bucket."); + + } + + private static void deleteBucketAndAllContents(AmazonS3 client) { + + ObjectListing objectListing = client.listObjects(s3BucketName); + + while (true) { + for (Iterator iterator = objectListing.getObjectSummaries().iterator(); iterator.hasNext(); ) { + S3ObjectSummary objectSummary = (S3ObjectSummary) iterator.next(); + client.deleteObject(s3BucketName, objectSummary.getKey()); + } + + if (objectListing.isTruncated()) { + objectListing = client.listNextBatchOfObjects(objectListing); + } else { + break; + } + }; + + VersionListing list = client.listVersions(new ListVersionsRequest().withBucketName(s3BucketName)); + + for (Iterator iterator = list.getVersionSummaries().iterator(); iterator.hasNext(); ) { + S3VersionSummary s = (S3VersionSummary) iterator.next(); + client.deleteVersion(s3BucketName, s.getKey(), s.getVersionId()); + } + + client.deleteBucket(s3BucketName); + + } + +} From 17feb016adf29021445440085c9aa19c60090c82 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Sun, 10 Dec 2017 12:40:20 -0800 Subject: [PATCH 02/28] Add SQS --- .../classes/com/amazonaws/samples/S3Sample.class | Bin 0 -> 6919 bytes .../samples/SQSExtendedClientExample.class | Bin 0 -> 9329 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 out/production/classes/com/amazonaws/samples/S3Sample.class create mode 100644 out/production/classes/com/amazonaws/samples/SQSExtendedClientExample.class diff --git a/out/production/classes/com/amazonaws/samples/S3Sample.class b/out/production/classes/com/amazonaws/samples/S3Sample.class new file mode 100644 index 0000000000000000000000000000000000000000..70c2949e76d44edc8c1778123ed191c5d6ce34d1 GIT binary patch literal 6919 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 literal 0 HcmV?d00001 From ca429b6d5400e863910481cf70a6484446c6f2f0 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Sun, 10 Dec 2017 14:47:37 -0800 Subject: [PATCH 03/28] More changes to add debugging to SQS project. --- build.gradle | 2 +- .../com/amazonaws/samples/S3Sample.class | Bin 6919 -> 6993 bytes .../samples/SQSExtendedClientExample.class | Bin 9329 -> 10214 bytes .../java/com/amazonaws/samples/S3Sample.java | 4 +- .../samples/SQSExtendedClientExample.java | 52 ++++++++++++------ 5 files changed, 38 insertions(+), 20 deletions(-) diff --git a/build.gradle b/build.gradle index 04a8e3a..21f6969 100644 --- a/build.gradle +++ b/build.gradle @@ -10,5 +10,5 @@ repositories { dependencies { compile 'com.amazonaws:aws-java-sdk:1.9.6' compile 'com.amazonaws:amazon-sqs-java-extended-client-lib:1.0.1' - + compile 'log4j:log4j:1.2.17' } \ No newline at end of file diff --git a/out/production/classes/com/amazonaws/samples/S3Sample.class b/out/production/classes/com/amazonaws/samples/S3Sample.class index 70c2949e76d44edc8c1778123ed191c5d6ce34d1..c931967a798216164b0f3a71e115012dc05c0955 100644 GIT binary patch delta 2072 zcmZWq30PEB6#mZ}X71(9LvUOOL>)s3S=?6&1#v+IH*g_K9pItEE(|JWk!G1zw!B=* z4Oi4`QEEs@+tn;fZL=)fZC}jFGLy~)K0m&iZ|0nP?m6eb|2g-3ca{w}IiTv;l>>(W z^dnP;iE4q(Iy6)VVhgtF*oN&+>_CmcP8|Z(61$Y%t>ZE5QLD$5ctYaIKs<%L68m)2 z;%SLzB>WO}63?pq{SpV1u6N=&9CYFko>$@pfvOiJUeXbPmsR2`60Zsz){%=NI=bMf zN_tJ=n852gqVR^Yk4wC%<1L)faT2H0>TQ+qj>NkH@9F4?Y9-#6IIZ*tD(6ETXYi50 z$2tb!ti&fuf6Cme@R`Kt5?`pOFD1TG`kcVm65mLCt0M{DNqn#L531B3C4N%I&l0~V zeO}^Mr7sBlCh@z(A3D-i%0-Dkb^L`(O8hNwS>PWXQ*cGcWHd;EPDGlFCYz)HwYCd# z2ogGGlGHJS0+rAuIRzPlf@;^%60Q3pL9GM@3kng`T98Xn8|KPqGv0^=IcBNPTT)yu zsI4_J;7pW*cQZ;V%5uz+-a?ZQl+icCQ&d`L_Q?0l^BBm(Y(lhkJ|x_F(k45l6nf2K zpP+UIwWm-%#-M8`j88NuoH|&`?0tGfP)9+X4C+j7gCeMlLDy0w!I@q;K0Dvc@r^Yr z1$8y38$}Uftz<{EGchqy&~*kyQ+F%e;q4Pcv4r3>Z@JG~JlmaJkyBv$$_Pfx0G=q9mAA|Z*KSC4}bX!Tmju3*)9nS~%r%1-bZ0mc6C+Gn@$d%9lg9g$dD@&yJ z&7;8vCD8SRRw*ULKCUS~v$E7oaC5^9x`CL_5QBy)kR(bruo`Qu55(w>!zhKIrB@m> zoKg%LK_j`n292V4LQf_U9hp&4ROBh+fK*kr?si9)dl#DSMCLS_#;A^rwN}V*Hq&S@ zA!N8&XtpSm_tU96p{o^P>uQ~qTW=Vra9pXGnG@U@K98@W+?`UA%S;U#PZJd0M0O`n z&2Wz>D=R5$cDmU;i6X6ofuS8UXevicGUry9Gve3nMz+KvJgvK5FT6!UvDhZ9F}Tp*yWu1#&Xi3Y{ShXw3M zq7C~HTn~{|2k9E(haS&AS34Gd1o_cAHhw>bYN)}{1UpB%lC8MVFe^LM6*Zh=!t8#G z@MC0CYzw4O&CXP7R%qL*(aqKvKaBr{j%{|Pv2JqKAg1ZCaZI2E==kQy30EWca&4(} zoKEl)!dffl$HNBIlf&rEG8q!XU|k5kt?FUgiFI@s>*+XlbHWBXg^lzfs_7y&Yi+Sb z>y542IBe4ju$zIlYo*wsEx;~q6+hOhwWV<45p+ZeuN*X!-^RHp;{$%jX_UhUJ0;=) zRA3%^PjTdYEP$O+x}g#at6*2X$1PaIP*PioTX7rTRj{@URk)q&h|}`17)zLcFD(yu z@G1aHIW`@lflY_NodS0WEEBl9@w*(jg#K4>zrYHCdjytW!l(uef&D+BApWDc_aZh3 z+!uwFjH#yRe&|g1!KUfJTIQ#*C&@L@HR)MojE(UlvmTSP>MP4XWd*w9bWfs#0BS&u)o9cnB6-5$KACv5M)m zq{S}^NAb{N57V--9$JqXOl78`GOG@rv{*l~)8mf7QG?DcMkI$vBkt;W)HIx7pC6s~ zGK3A}wU&lQ&QdJgY_?;$mfNh#9?JLiDC-cu)pc0Ud{paO!*&@V0vj&F$t}Nx4lQVE V*vKIoHqjK;I*2lnM3a-k{sk=A#hm~E delta 1911 zcmZWp2V7NE82^74-aCi;uA&bCLB=&l$`B_S$xy(BC<+eTjHluNghvXcl;&uv-K@;S ztvM=@dYB}c4Gqh(T~=0BwzO%Mnf4vv=a1_C-uuQm|8Jh}oKvwYV=Ei39;ye>m!|8; zLzTcL9U7{9uo+u)Y{fPQwqu9DP8|YO61xo}?74ZNwOQ_A2iiMIvb(Gi0xMc$QoPx1Ga%?CO@#76?Bb;ROh ziBA;&lyk4d8Hvv%K9~4H;H<=#5?|>^z}FJz6#qsQ_^rfuO8H*m2gT1zTu}T+fuAIP zmiR?SnlkxS;x`=^@w+0I1pW~CQ%4pq>&V1k5?6HmjjIyZB!NYuFhQCiFCA0KTgMc# zDPor-1W7?YH9Kgj*1bZIF32Is5Y$RgYeBx8E5~Lhsf+Sl#qNTl!cswPtPJndq*+n6 zaIbv0tWmb;fVKuX$&alKYDfO;$e;iUwAR{sN4BRRLBR%fpb&%FQ>Z~<6i#rYmygb! z0^`X92o=ESLPyGyvrT&E0$wh^3SD`yP ztGw71XL6wi4WOF@#Tj(7ax#$O4Lpc-)>$z;G=UNcT6(!bNt9^NAR5eVF({e36Jj`c zw~WlP`SWv17?7gM(oM5lX+ed{jOUV4X^1L$C_%yfQe5*~?t;QuW=^45)L6StXmfov zw=8e2%WYaGWW&H=%9nFkR#t|Y>CSPNm72*#`JAmm!)b)_na10LCS;naB_%~A&6_4~ zkEC$xluux2I*nn(Sl5CwSE<_^o)Tv^eFlxC@EV(Lqt=-QWzjf;#=}Jjw$`?5XGJ+W z$$XlidN}$pEn3RDokfuz5E0E%;GgWYd}BDW@8!2N~WB8PVjZF=Rwj$dUgJncj>XbsbsF6%C`qbcAm- zb8Q;mWiO~s)bslR41&a9_#znrNJSKeSV`?mD>u+#>|vXYbQD$8fX#FcTQqNM)jDFE zmVoWrWb9#IJG2?tsm;c2Z8`Qf_OuudtVby3qY!qQ&M}Hm%rP$FI2ND;Hj2mXD21DM zk210hx4_0;x?mv|!KQkS@=8>2YEoN*TX7p7lCQQ9i?M`DiP9#ak{x)Vr#2pUu;h)U zj7^8QhGnn|EEBj>V7b7G#@|ZdGWuP`YJpV(cL}V#jG@=i1GfJ_K>~MQ!bX96y3WMC z>{E@;ef*N~wQd>^BWf|O7UM@oIwyEAG18gc zNGG+B8`nLU9I>B$XqaV%2gl^8K@4C`VgS})Eo&j@j0a$G^p;uh)4(VmPVD0>yqG7} zVG2i{sv=LT#q^Pp9?VFOItKeLgtwTm9IHAwgl1VMgFDSo(M-1XXZjF#PgRqMhq*GK v4IkEeJj!uZN87^d3fc&4xB>@v@-jNKNJqnC4AFQ#GMMWi8ifQJofPyBQ}&ct diff --git a/out/production/classes/com/amazonaws/samples/SQSExtendedClientExample.class b/out/production/classes/com/amazonaws/samples/SQSExtendedClientExample.class index b9202559c34d5fb04e1b864c4512224b4f989796..b9f0c3590de0ea00e69099090671db1b8978d4a3 100644 GIT binary patch delta 3749 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 N5 messages = sqsExtended.receiveMessage(receiveMessageRequest).getMessages(); for (Message message : messages) { - System.out.println("\nMessage received:"); - System.out.println(" ID: " + message.getMessageId()); - System.out.println(" Receipt handle: " + message.getReceiptHandle()); - System.out.println(" Message body (first 5 characters): " + message.getBody().substring(0, 5)); + log.info("\nMessage received:"); + log.info(" ID: " + message.getMessageId()); + log.info(" Receipt handle: " + message.getReceiptHandle()); + log.info(" Message body (first 5 characters): " + message.getBody().substring(0, 5)); } // Delete the message, the queue, and the bucket. String messageReceiptHandle = messages.get(0).getReceiptHandle(); sqsExtended.deleteMessage(new DeleteMessageRequest(myQueueUrl, messageReceiptHandle)); - System.out.println("Deleted the message."); + log.info("Deleted the message."); sqsExtended.deleteQueue(new DeleteQueueRequest(myQueueUrl)); - System.out.println("Deleted the queue."); + log.info("Deleted the queue."); - //deleteBucketAndAllContents(s3); - System.out.println("Deleted the bucket."); + deleteBucketAndAllContents(s3); + log.info("Deleted the bucket."); } From f3cdbb6201102a05555195dc41700bb1f98f3c43 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Sun, 10 Dec 2017 14:53:30 -0800 Subject: [PATCH 04/28] Removed deprecated code usage. --- .../samples/SQSExtendedClientExample.class | Bin 10214 -> 10558 bytes .../samples/SQSExtendedClientExample.java | 48 ++++++++---------- 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/out/production/classes/com/amazonaws/samples/SQSExtendedClientExample.class b/out/production/classes/com/amazonaws/samples/SQSExtendedClientExample.class index b9f0c3590de0ea00e69099090671db1b8978d4a3..459927d8e8926cb7d552b96391c6bb1d2c17f89a 100644 GIT binary patch delta 3281 zcmai12XvHG7XH2|dH?+RlgtcB$Up)UdJ>WVq38saW(g8NqF@w|kPIX-1xO$iWv~&% zioYFui(-Y*NyZVxf(09HW8DVquDaD-S6z1%m%VQ$a(2(zb2caEzWZ)_x4rxR`DEU{ z1(AdQdT}3siTu#Sl{lhs)Pw^^3>-7?YmNTKz;6wFY~T|EpBng`f!~|>1O8~@Px!M3 zSKu=Pe=+e_d~V9-Zwg-+_|n7xe5JwP6~0#Zhk<{Z$ip`#hTvNdj^jIx{YxQoLJ=m0 zl0u+E1E-=((QRS`jtF3yL8Vti(PN@W6N_ld$xKhja9SE<7|c}6GBHlG$I+|kQ}mk> zml&?#0F&9wNoOtxI^nX9n#^NBagZ57B?l|!n>bAe{fw+EFgb)nH3;f$P_fX&EPSQa zhnXDC5e7#pjxtfj(V95MV3A_6iRzS4iOI1nO=lU)(>adgHJG4SVQ`|sNhZ$cWP?-m zdP>CLsTv8H;z*@dnW}i2iKQvaryD#&ahi$cDa+Fh&X6>7romY{?lVoE#j_R9G11H_ zO_{AJ=W1+@Vzr5Oosf3U)s%TA=kq+p1tvOKr9sUEO+R0Q3#5izr~_VP@Ir&NCNJW} zii=Hb78_i`rHYp*E{g^npD|kDT14CLDvWM-A7a^^igmiu$;wHcq!xNo5%E6tp-wyC8dyhf9c`EpBYI_o-{>SwMAH-y_do9bFR=C5gA*CYZKy1B{XWxU+t zW=4o%{bo$N#+sG0g;x;j%(lAaE#U@>SMn-isz?OwX}S5?7O&@7}Z&&&!IJf-dXgTV#i`f$^#&R}C*TSH4Y6twuX z9I+*<*!v83T6~tzS=`M%#H5oZ%Drj!b@?81_1bVpr^P6rx4+DqSMUO3VsTcuCEOWq z2zEAxgCejtTxQ{2yk{@-=4JM>PjQ9CID1m%3fhl(eK{}cgAzKRm$busxi1xYh2P@K z+;8y}zABAm@iq3?KHsE@*R{d{zG3lA-5782ZJoS>1WSpG4I8Sf8yZR*8(UjDIuzfr z_%7eGH~0ppy>IaY9U*Vw2qJ>13w(}nyNi0sWr+?p@l|^&v+gr=)TI)8px7BrZl>h$|+{x4J9fJeW zs+@eM{Z97gXgIIT8QnG5axc3==09ZM57IYHutB*_F#mO)c&PcMIac zc7bV0;wW4vxRnyX^|(QHroN~`xz^4ttgg|rqu>!(3Ik>EiNQfKwTELo#$tkC6H$T5 zsKk_$whW=&gquajgB`d<+X7t0;@AK=zR->p7DoCocn|VpDAOzKw3b>af$=}Qzsia z#!K#yC*bj}??Who%G!XZ7gIxK0;h?=)BR_}Fs%>MW0)aG3^PON3CyYur1#>?kR_I^ zIL>k)hOZzEsr)G6H5VW`{B(B9j@%x#G6w&q?yDh2M+0p)6r$#W7DCm>=>6 zym6dIgnR*C91DoMuufw&#D1I~@@xGIL|@kLy;~?w1^h8AN;&u6%nLO$BHY^l#l5Is z^%}E;Eb9-YPEOOT<;h^`<7nt-goQD- z4=c34D>htY`7(IlTT&GLm2xs-miaj3ks zMOel0=-^a&UT0$+o6yD8SkD`=flp#1-@_&z!e$;tgkN9_zr~dfdE6Y?xWfNIZ+@VA142>=s%EhteV0i6W9I@qUcw@dC0$^{{kWFT4`tbo7a!4{`BV z=0ZR3MR+Blko3DwNJSh9FDdK=751f{knH(W1o2H_zrrgDuPVHz@VZDGPKpRyR5@rzD1^WdB#oHBWYbfgs7|Z=S2g zN@KV*jut0+P8=2C*1M2dToOl{==Pj=y*Pn(xv{H~6JT{5YaFPSSrF+++MHY3Z*zno zNt>M^mo^%3#jsX`b#ZjL#PmlgkJdXRkuuDZ?HWR+;MYq8H=#i0-DsJ16QvQSNC%uQ z)vuBgFOlM|!hP6;`(>^^AQBHr2RsrU7mnX1U5-S&Z pOKM6)F;=IB$<*i{BET5w+hW0fDYyf_k`!p~DL)k4MUoTGzX8F0=m7u# delta 3101 zcmY*b33yc175@KOa^JjpS!O~Kh7b&4O~?j>ZBP~sn-YR7#;_-3$U;I8!Y0aKKygL! zsi?S%f(t5)PBM%{ur76Ji*2o?w3RMurE0a+R;_~PPEz`rFW)`qo^$Tm&w0}|=fleI zn`aJp0Vw0kCa%Uwh2NWS;G}^+82F<`-#2i|z@H5K*}z{6{MEn*CO*VRCjN$xJ-7;| z4gB52C-~Hq%V!GzFz~sFbbO(Ye=7V-;Y$NwndpswEBwbqHoo@Y8+>cxzX*Tl#rHU) zaMnaFPRcM7PK?Ngv9fq3AJDsM&=y6}^gTk|M`qZP-PSlq37tif@TQ3ef;*CC&8@&Zm!oM=;< zJ3gb+SUb{Q>CTVzbyYEPhx<5-ZNX}RM;=6mMlunBu$Eo6cypo$OUd5~JhU6tlTPSXp*(HG-`{U%P`R&}Q(?Ahx=Qbj(sb+mmNpsDr`jWYA zYZ_P8YoE3gS$1jvEWgETd7a`8i`Vl8i#PHnduPg6@6EhLai_&w<^E2}42keIi@SKc zotIjfYx54pJ1ySD-I87lZ}V=+vBi6Muf;vQPolrXdB41TKQ+twfWU833z8q?O%@;G z!xkUmqjqUp(7Bh7*)3_6&d0gWekm<0|EG9^NG}gHhuT7Qxor)h+}d@^SBBb(E$-(N zic2g$$=yUrPeKg)JfF}1l-B#ScJF{T{|uj%0J0^g!p=?4u=pGgT0F#v6yM_WT0!YK z1qXcosu#3^C_5~6>N3W7Smz{8u!uxL$6i zZf~J%x3}k2%+<1k;gNHg7%GGhMPjHJ14MD5?7UKpz(|x~JVu?IMz$d_pt{K=pT+FyLwm$`c@o5PAB@!DlCfOJO|>)t?oeopex`?ONk=SKOl;M zRdEaw>R{Iq;W`7Zxls%Wx(g3sXbkxdRB0^Wj-kMbLrC=xi^3O2p}Z*4oG6NeNpX}^ z$5E!&>!%}P(j>-^%|Q+97Sa?UB90# z?*;zPyGzBXKzbB&x}EzmQ__}T&J!3G*MH2N-^0DkX+%+V?)|>A*9Cme7%q2cqfyKg zZ&V!BIwF4u7R0cyCzM5^PqP*$f>{#7(jLY#VH9?vM*CYU_(5riup544APcTUH+D%k z0psA5K5}D%@XCcd5t*2T{+NmaOv7;b@QuYROh%=gv#}g=(1N+xhqk&$mWN$Px4=pUfYL3Dcya;Pqi#9f4 z9d}?o_hJKI!$!V=%{(EW#7}TFzeL#K##To%+8sV@a|9#=Jx0G4mowqTPTUHIXsHu- zcF7MBX?ffZTO{0$4BUY`b^HbV9Cu;2Oyh8VjJu__PD~aP_u_uZ$#Qn!0X!(VxQ#dB zAv`Se`Y1Qx5s6OWDYjy-yfDxyW*)=iGG|>}gnigA(|ep3;|W;=UYuqro)pZ&R~#fc zc^b)dG7ATAO&BTcO$VOAvq+W5KfrT1h%|}+J(-~heB#PvN#Qk8iWkIlSrI)vDIhw8 zG7qk^60k#|Qy~T_9QK}-Jf?RO6ygdmDjZShQg}(>s9Z(pn8M5QA6EED0((W_RfX3S zUI)IFUvVbnbI`ppxK1+R7E^l)5~IG{ftfPfb%~*1`3kU*&1|d zr2$tItMze33~OAX`b4)!YaNm_S#60P4kAVH8zh38kt17gh%`c(w89u^f(g<9Go;Fk zrM|1N2b;sVPuTYh>p>wsoamqFQraO%#+!IcnxU7h*thXBX^_p*LqEqa#7w;mf~Glj zQlz1G3p7Q?JNTufY_XX6m2{yaQL#*c-8$YCto!A=@>18XAHqrB!BqIockoE+zeS$! zd*mp*m$>9hXZ`lv2V}k&)_=o0(H1$kY7#qeoqxS73jc;qY>Z=*B=*WEHg~U%2!`s^ pFp(O6Ld76y;vw?!7%Cr)>>=XR2@!DMcajPnhWsLvpWJ)k`2ma>qelP$ diff --git a/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java b/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java index 3721942..20df2de 100644 --- a/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java +++ b/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java @@ -1,40 +1,30 @@ package com.amazonaws.samples; -import java.util.*; -import java.util.logging.Logger; - import com.amazon.sqs.javamessaging.AmazonSQSExtendedClient; -import com.amazonaws.services.sqs.AmazonSQS; -import com.amazonaws.services.sqs.AmazonSQSClient; -import org.apache.log4j.BasicConfigurator; -import org.apache.log4j.Level; -import org.apache.log4j.PropertyConfigurator; -import org.joda.time.DateTime; -import org.joda.time.format.DateTimeFormat; +import com.amazon.sqs.javamessaging.ExtendedClientConfiguration; import com.amazonaws.AmazonClientException; import com.amazonaws.auth.AWSCredentials; +import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Region; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; -import com.amazonaws.services.s3.AmazonS3Client; -import com.amazonaws.services.s3.model.BucketLifecycleConfiguration; -import com.amazonaws.services.s3.model.ListVersionsRequest; -import com.amazonaws.services.s3.model.ObjectListing; -import com.amazonaws.services.s3.model.S3ObjectSummary; -import com.amazonaws.services.s3.model.S3VersionSummary; -import com.amazonaws.services.s3.model.VersionListing; -import com.amazonaws.services.sqs.model.CreateQueueRequest; -import com.amazonaws.services.sqs.model.DeleteMessageRequest; -import com.amazonaws.services.sqs.model.DeleteQueueRequest; -import com.amazonaws.services.sqs.model.Message; -import com.amazonaws.services.sqs.model.ReceiveMessageRequest; -import com.amazonaws.services.sqs.model.SendMessageRequest; -import com.amazon.sqs.javamessaging.ExtendedClientConfiguration; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import com.amazonaws.services.s3.model.*; +import com.amazonaws.services.sqs.AmazonSQS; +import com.amazonaws.services.sqs.AmazonSQSClient; +import com.amazonaws.services.sqs.model.*; +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.PropertyConfigurator; +import org.joda.time.DateTime; +import org.joda.time.format.DateTimeFormat; + +import java.util.*; +import java.util.logging.Logger; public class SQSExtendedClientExample { - static Logger log = Logger.getAnonymousLogger(); + private static final Logger log = Logger.getAnonymousLogger(); private static final String s3BucketName = UUID.randomUUID() + "-" + DateTimeFormat.forPattern("yyMMdd-hhmmss").print(new DateTime()); @@ -66,9 +56,11 @@ public static void main(String[] args) { + "location (/home/$USER/.aws/credentials) and is in a valid format.", e); } - AmazonS3 s3 = new AmazonS3Client(credentials); - Region s3Region = Region.getRegion(Regions.US_WEST_2); - s3.setRegion(s3Region); + AmazonS3 s3 = AmazonS3ClientBuilder + .standard() + .withRegion(Regions.US_WEST_2) + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .build(); // Set the Amazon S3 bucket name, and set a lifecycle rule on the bucket to // permanently delete objects a certain number of days after From 69620d7245003ae07f6611d64c656b9359845767 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Sun, 10 Dec 2017 15:07:03 -0800 Subject: [PATCH 05/28] Fixed logging to log AWS requests. --- .gitignore | 3 ++- .../samples/SQSExtendedClientExample.class | Bin 10558 -> 9844 bytes out/production/resources/log4j.properties | 20 +++++++++++++++++ .../samples/SQSExtendedClientExample.java | 21 ++---------------- src/main/resources/log4j.properties | 20 +++++++++++++++++ 5 files changed, 44 insertions(+), 20 deletions(-) create mode 100644 out/production/resources/log4j.properties create mode 100644 src/main/resources/log4j.properties diff --git a/.gitignore b/.gitignore index 4b2e89d..78f6a2c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ AwsCredentials.properties target/ *.iml .gradle -build/ \ No newline at end of file +build/ +*.log diff --git a/out/production/classes/com/amazonaws/samples/SQSExtendedClientExample.class b/out/production/classes/com/amazonaws/samples/SQSExtendedClientExample.class index 459927d8e8926cb7d552b96391c6bb1d2c17f89a..47f8878ea91377050b2b8cd8262d918440f0c5b9 100644 GIT binary patch delta 3021 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 diff --git a/out/production/resources/log4j.properties b/out/production/resources/log4j.properties new file mode 100644 index 0000000..5ee5ab1 --- /dev/null +++ b/out/production/resources/log4j.properties @@ -0,0 +1,20 @@ +# Root logger option +log4j.rootLogger=INFO, stdout, file + +log4j.logger.com.amazonaws.request=DEBUG + +# Redirect log messages to console +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n + +# Redirect log messages to a log file, support file rolling. +log4j.appender.file=org.apache.log4j.RollingFileAppender +log4j.appender.file.File=aws.log +log4j.appender.file.MaxFileSize=5MB +log4j.appender.file.MaxBackupIndex=10 +log4j.appender.file.layout=org.apache.log4j.PatternLayout +log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n + + diff --git a/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java b/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java index 20df2de..ab9ffb4 100644 --- a/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java +++ b/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java @@ -14,37 +14,20 @@ import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClient; import com.amazonaws.services.sqs.model.*; -import org.apache.log4j.BasicConfigurator; -import org.apache.log4j.PropertyConfigurator; +import org.apache.log4j.Logger; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import java.util.*; -import java.util.logging.Logger; public class SQSExtendedClientExample { - private static final Logger log = Logger.getAnonymousLogger(); + private static final Logger log = Logger.getLogger(SQSExtendedClientExample.class.getName()); private static final String s3BucketName = UUID.randomUUID() + "-" + DateTimeFormat.forPattern("yyMMdd-hhmmss").print(new DateTime()); - private static void initializeLogger() { - Properties log4jProperties = new Properties(); - log4jProperties.setProperty("log4j.rootLogger", "ERROR, myConsoleAppender"); - log4jProperties.setProperty("log4j.appender.myConsoleAppender", "org.apache.log4j.ConsoleAppender"); - log4jProperties.setProperty("log4j.appender.myConsoleAppender.layout", "org.apache.log4j.PatternLayout"); - log4jProperties.setProperty("log4j.appender.myConsoleAppender.layout.ConversionPattern", "%-5p %c %x - %m%n"); - PropertyConfigurator.configure(log4jProperties); - - BasicConfigurator.configure(); - - log.info("Logger intialized"); - } - public static void main(String[] args) { - SQSExtendedClientExample.initializeLogger(); - AWSCredentials credentials = null; try { diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties new file mode 100644 index 0000000..5ee5ab1 --- /dev/null +++ b/src/main/resources/log4j.properties @@ -0,0 +1,20 @@ +# Root logger option +log4j.rootLogger=INFO, stdout, file + +log4j.logger.com.amazonaws.request=DEBUG + +# Redirect log messages to console +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n + +# Redirect log messages to a log file, support file rolling. +log4j.appender.file=org.apache.log4j.RollingFileAppender +log4j.appender.file.File=aws.log +log4j.appender.file.MaxFileSize=5MB +log4j.appender.file.MaxBackupIndex=10 +log4j.appender.file.layout=org.apache.log4j.PatternLayout +log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n + + From b7f6914ae5ac0338a281af9a2a82bdef759b632f Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Sun, 10 Dec 2017 15:08:08 -0800 Subject: [PATCH 06/28] Minor edit to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 78f6a2c..f122c3b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ target/ .gradle build/ *.log +out From 995f6d11a3fe9c47062e97260109e838c6f5fdee Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Sun, 10 Dec 2017 15:09:31 -0800 Subject: [PATCH 07/28] Fix unnecessary committed files. --- .../com/amazonaws/samples/S3Sample.class | Bin 6993 -> 0 bytes .../samples/SQSExtendedClientExample.class | Bin 9844 -> 0 bytes out/production/resources/log4j.properties | 20 ------------------ 3 files changed, 20 deletions(-) delete mode 100644 out/production/classes/com/amazonaws/samples/S3Sample.class delete mode 100644 out/production/classes/com/amazonaws/samples/SQSExtendedClientExample.class delete mode 100644 out/production/resources/log4j.properties diff --git a/out/production/classes/com/amazonaws/samples/S3Sample.class b/out/production/classes/com/amazonaws/samples/S3Sample.class deleted file mode 100644 index c931967a798216164b0f3a71e115012dc05c0955..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6993 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 Date: Sun, 10 Dec 2017 15:30:59 -0800 Subject: [PATCH 08/28] Fix build script to run either example. --- build.gradle | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 21f6969..f0f1d0d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,8 @@ apply plugin: 'java' apply plugin: 'application' +apply plugin: 'idea' -mainClassName="com.amazonaws.samples.S3Sample" +//mainClassName="com.amazonaws.samples.S3Sample" repositories { mavenCentral() @@ -11,4 +12,16 @@ dependencies { compile 'com.amazonaws:aws-java-sdk:1.9.6' compile 'com.amazonaws:amazon-sqs-java-extended-client-lib:1.0.1' compile 'log4j:log4j:1.2.17' -} \ No newline at end of file +} + +task(runS3Example, dependsOn: 'classes', type: JavaExec) { + main = 'com.amazonaws.samples.S3Sample' + classpath = sourceSets.main.runtimeClasspath +} + +task(runSQSExample, dependsOn: 'classes', type: JavaExec) { + main = 'com.amazonaws.samples.SQSExtendedClientExample' + classpath = sourceSets.main.runtimeClasspath +} + +defaultTasks 'runS3Example', 'runSQSExample' From 81fda45579d5bd7293d946056e0d46a6e686eff5 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Sun, 10 Dec 2017 15:33:25 -0800 Subject: [PATCH 09/28] Minor build.gradle edit. --- build.gradle | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index f0f1d0d..15137d7 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,7 @@ apply plugin: 'java' -apply plugin: 'application' -apply plugin: 'idea' - -//mainClassName="com.amazonaws.samples.S3Sample" +//apply plugin: 'idea' +//apply plugin: 'eclipse' +//apply plugin: 'application' repositories { mavenCentral() From 6a4994a6ad01bd2de1e9893041fbfba27bae11e6 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Sun, 10 Dec 2017 15:35:16 -0800 Subject: [PATCH 10/28] Fix readme to reflect change of gradle run config. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a22480a..f5c0461 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Maven: Gradle: - gradlew clean build run + gradlew clean build runS3Example runSQSExample When you start making your own buckets, the S3 documentation provides a good overview From 1099b5be04149ea596ce4149a413fd6393aa7d6e Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Sun, 10 Dec 2017 15:38:07 -0800 Subject: [PATCH 11/28] Fix pom.xml to reflect addition of 2nd sample --- pom.xml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index efc3c43..98e7d17 100644 --- a/pom.xml +++ b/pom.xml @@ -35,14 +35,24 @@ 1.2.1 + first-execution java + + com.amazonaws.samples.S3Sample + + + + second-execution + + java + + + com.amazonaws.samples.SQSExtendedClientExample + - - com.amazonaws.samples.S3Sample - From 650787397c40052df8b1ad2dded06b228bebb36b Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 10:29:44 -0800 Subject: [PATCH 12/28] Added an example of upload download manager with buckets --- build.gradle | 2 +- .../amazonaws/samples/S3TransferExample.java | 121 ++++++++++++++++++ 2 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/amazonaws/samples/S3TransferExample.java diff --git a/build.gradle b/build.gradle index 15137d7..9329f8b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ apply plugin: 'java' -//apply plugin: 'idea' +apply plugin: 'idea' //apply plugin: 'eclipse' //apply plugin: 'application' diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java new file mode 100644 index 0000000..9a21fc0 --- /dev/null +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -0,0 +1,121 @@ +package com.amazonaws.samples; + +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; +import com.amazonaws.regions.Region; +import com.amazonaws.regions.Regions; +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.AmazonS3Client; +import com.amazonaws.services.s3.model.Bucket; +import com.amazonaws.services.s3.transfer.Download; +import com.amazonaws.services.s3.transfer.TransferManager; +import com.amazonaws.services.s3.transfer.Upload; + +import java.io.*; +import java.util.UUID; + +/** + * Requires that you created a file ~/.aws/credentials + */ +public class S3TransferExample { + + private static final AmazonS3 s3; + private static final Region usWest2; + private static final String bucketName; + private static final DefaultAWSCredentialsProviderChain credentialProviderChain; + + private static TransferManager tx; + private static S3TransferExample trxManager; + private static File fileKey; + + static { + s3 = new AmazonS3Client(); + usWest2 = Region.getRegion(Regions.US_WEST_2); + s3.setRegion(usWest2); + bucketName = "s3-bucket-sync-test-" + UUID.randomUUID(); + credentialProviderChain = new DefaultAWSCredentialsProviderChain(); + fileKey = createSampleFile(); + } + + public static void main(String[] args) + { + trxManager = new S3TransferExample(); + //S3Object[] objects = s3Service.listObjects(YourBucketNameString); + //AmazonS3Client s3 = new AmazonS3Client(myCredentials); + //for ( S3VersionSummary summary : S3Versions.forPrefix(s3, "my-bucket", "photos/") ) { + // System.out.printf("Version '%s' of key '%s'n", summary.getVersionId(), summary.getKey()); + //} + + createATestBucket(); + + uploadTmpFileToBucket(); + + downloadFileFromBucketToTmpFile(); + + } + + public static void uploadTmpFileToBucket() + { + tx = new TransferManager(credentialProviderChain.getCredentials()); + fileKey = createSampleFile(); + + Upload myUpload = tx.upload(bucketName, fileKey.getName(), fileKey); + + try { + myUpload.waitForCompletion(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + if (tx != null) tx.shutdownNow(); + } + + public static void downloadFileFromBucketToTmpFile() + { + tx = new TransferManager(credentialProviderChain.getCredentials()); + + Download myDownload = tx.download(bucketName, fileKey.getName(), new File("aws-java-sdk-copy-test.txt" + UUID.randomUUID())); + + try { + myDownload.waitForCompletion(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + if (tx != null) tx.shutdownNow(); + } + + public static void createATestBucket() + { + boolean bucketMissing = true; + for (Bucket bucket : s3.listBuckets()) { + System.out.println("bucket: " + bucket.getName()); + if (bucket.getName().equals(bucketName)) { + System.out.println("Bucket already exists."); + bucketMissing = false; + } + } + if (bucketMissing) { + System.out.println("Creating bucket " + trxManager.bucketName + "\n"); + s3.createBucket(trxManager.bucketName); + } + } + + private static File createSampleFile() { + File tempTestFile = null; + try { + tempTestFile = File.createTempFile("aws-java-sdk-copy-test", ".txt"); + tempTestFile.deleteOnExit(); + + Writer writer = new OutputStreamWriter(new FileOutputStream(tempTestFile)); + writer.write("abcdefghijklmnopqrstuvwxyz\n"); + writer.write("01234567890112345678901234\n"); + writer.write("!@#$%^&*()-=[]{};':',.<>/?\n"); + writer.write("01234567890112345678901234\n"); + writer.write("abcdefghijklmnopqrstuvwxyz\n"); + writer.close(); + } catch (IOException ioe ) { + ioe.printStackTrace(); + } + + return tempTestFile; + } + +} From 82120354178d42f5e7aa3ad0dc4accee9f4e9fd8 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 11:08:33 -0800 Subject: [PATCH 13/28] Changed example to a copy buckets example --- .../amazonaws/samples/S3TransferExample.java | 61 ++++++++----------- 1 file changed, 26 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index 9a21fc0..b540e70 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -6,6 +6,8 @@ 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.CopyObjectRequest; +import com.amazonaws.services.s3.model.CopyObjectResult; import com.amazonaws.services.s3.transfer.Download; import com.amazonaws.services.s3.transfer.TransferManager; import com.amazonaws.services.s3.transfer.Upload; @@ -20,45 +22,43 @@ public class S3TransferExample { private static final AmazonS3 s3; private static final Region usWest2; - private static final String bucketName; private static final DefaultAWSCredentialsProviderChain credentialProviderChain; - private static TransferManager tx; - private static S3TransferExample trxManager; + private static File fileKey; + private static String sourceBucket; + private static String destinationBucket; static { s3 = new AmazonS3Client(); usWest2 = Region.getRegion(Regions.US_WEST_2); s3.setRegion(usWest2); - bucketName = "s3-bucket-sync-test-" + UUID.randomUUID(); credentialProviderChain = new DefaultAWSCredentialsProviderChain(); - fileKey = createSampleFile(); + fileKey = createTmpFile(); } public static void main(String[] args) { - trxManager = new S3TransferExample(); - //S3Object[] objects = s3Service.listObjects(YourBucketNameString); - //AmazonS3Client s3 = new AmazonS3Client(myCredentials); - //for ( S3VersionSummary summary : S3Versions.forPrefix(s3, "my-bucket", "photos/") ) { - // System.out.printf("Version '%s' of key '%s'n", summary.getVersionId(), summary.getKey()); - //} - - createATestBucket(); + createTestBuckets("test-bucket-" + UUID.randomUUID()); uploadTmpFileToBucket(); - downloadFileFromBucketToTmpFile(); + copyBucketToNewLocation(); + + } + private static void copyBucketToNewLocation() { + System.out.println("Copying bucket " + sourceBucket + " to new bucket " + destinationBucket); + CopyObjectResult copyObjectResult = s3.copyObject(sourceBucket, fileKey.getName(), destinationBucket, fileKey.getName()); + System.out.println("RESULT charged? " + copyObjectResult.isRequesterCharged()); } public static void uploadTmpFileToBucket() { + System.out.println("Uploading a file to bucket " + sourceBucket); tx = new TransferManager(credentialProviderChain.getCredentials()); - fileKey = createSampleFile(); - Upload myUpload = tx.upload(bucketName, fileKey.getName(), fileKey); + Upload myUpload = tx.upload(sourceBucket, fileKey.getName(), fileKey); try { myUpload.waitForCompletion(); @@ -68,37 +68,29 @@ public static void uploadTmpFileToBucket() if (tx != null) tx.shutdownNow(); } - public static void downloadFileFromBucketToTmpFile() - { - tx = new TransferManager(credentialProviderChain.getCredentials()); - Download myDownload = tx.download(bucketName, fileKey.getName(), new File("aws-java-sdk-copy-test.txt" + UUID.randomUUID())); - try { - myDownload.waitForCompletion(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - if (tx != null) tx.shutdownNow(); - } - - public static void createATestBucket() + public static void createTestBuckets(String name) { + sourceBucket = name; + destinationBucket = name + "-dest"; + System.out.println("Creating a test buckets with names: " + sourceBucket + ", " + destinationBucket); boolean bucketMissing = true; for (Bucket bucket : s3.listBuckets()) { System.out.println("bucket: " + bucket.getName()); - if (bucket.getName().equals(bucketName)) { - System.out.println("Bucket already exists."); + if (bucket.getName().equals(name)) { + System.out.println("Bucket " + name + " already exists."); bucketMissing = false; } } if (bucketMissing) { - System.out.println("Creating bucket " + trxManager.bucketName + "\n"); - s3.createBucket(trxManager.bucketName); + System.out.println("Creating bucket " + name + "\n"); + s3.createBucket(sourceBucket); + s3.createBucket(destinationBucket); } } - private static File createSampleFile() { + private static File createTmpFile() { File tempTestFile = null; try { tempTestFile = File.createTempFile("aws-java-sdk-copy-test", ".txt"); @@ -114,7 +106,6 @@ private static File createSampleFile() { } catch (IOException ioe ) { ioe.printStackTrace(); } - return tempTestFile; } From 7b407671a487649bba0381eb1f1daaadd788e06c Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 11:34:41 -0800 Subject: [PATCH 14/28] Cleans up after it runs. --- .../amazonaws/samples/S3TransferExample.java | 77 +++++++++++++++---- 1 file changed, 60 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index b540e70..6fed494 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -1,18 +1,17 @@ package com.amazonaws.samples; +import com.amazonaws.AmazonServiceException; import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.regions.Region; import com.amazonaws.regions.Regions; 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.CopyObjectRequest; -import com.amazonaws.services.s3.model.CopyObjectResult; -import com.amazonaws.services.s3.transfer.Download; +import com.amazonaws.services.s3.model.*; import com.amazonaws.services.s3.transfer.TransferManager; import com.amazonaws.services.s3.transfer.Upload; import java.io.*; +import java.util.Iterator; import java.util.UUID; /** @@ -30,21 +29,22 @@ public class S3TransferExample { private static String destinationBucket; static { - s3 = new AmazonS3Client(); - usWest2 = Region.getRegion(Regions.US_WEST_2); - s3.setRegion(usWest2); - credentialProviderChain = new DefaultAWSCredentialsProviderChain(); - fileKey = createTmpFile(); + s3 = new AmazonS3Client(); + usWest2 = Region.getRegion(Regions.US_WEST_2); + s3.setRegion(usWest2); + credentialProviderChain = new DefaultAWSCredentialsProviderChain(); + fileKey = createTmpFile(); } - public static void main(String[] args) - { + public static void main(String[] args) { createTestBuckets("test-bucket-" + UUID.randomUUID()); uploadTmpFileToBucket(); copyBucketToNewLocation(); + deleteTestBuckets(); + } private static void copyBucketToNewLocation() { @@ -53,8 +53,7 @@ private static void copyBucketToNewLocation() { System.out.println("RESULT charged? " + copyObjectResult.isRequesterCharged()); } - public static void uploadTmpFileToBucket() - { + public static void uploadTmpFileToBucket() { System.out.println("Uploading a file to bucket " + sourceBucket); tx = new TransferManager(credentialProviderChain.getCredentials()); @@ -68,10 +67,12 @@ public static void uploadTmpFileToBucket() if (tx != null) tx.shutdownNow(); } + public static void deleteTestBuckets() { + deleteEntireBucket(sourceBucket); + deleteEntireBucket(destinationBucket); + } - - public static void createTestBuckets(String name) - { + public static void createTestBuckets(String name) { sourceBucket = name; destinationBucket = name + "-dest"; System.out.println("Creating a test buckets with names: " + sourceBucket + ", " + destinationBucket); @@ -103,10 +104,52 @@ private static File createTmpFile() { writer.write("01234567890112345678901234\n"); writer.write("abcdefghijklmnopqrstuvwxyz\n"); writer.close(); - } catch (IOException ioe ) { + } catch (IOException ioe) { ioe.printStackTrace(); } return tempTestFile; } + public static void deleteEntireBucket(String bucket_name) { + System.out.println("Deleting S3 bucket: " + bucket_name); + final AmazonS3 s3 = new AmazonS3Client(); + + try { + System.out.println(" - removing objects from bucket"); + ObjectListing object_listing = s3.listObjects(bucket_name); + while (true) { + for (Iterator iterator = object_listing.getObjectSummaries().iterator(); iterator.hasNext(); ) { + S3ObjectSummary summary = (S3ObjectSummary) iterator.next(); + s3.deleteObject(bucket_name, summary.getKey()); + summary.getETag(); + } + if (object_listing.isTruncated()) { + object_listing = s3.listNextBatchOfObjects(object_listing); + } else { + break; + } + } + ; + + System.out.println(" - removing versions from bucket"); + VersionListing version_listing = s3.listVersions(new ListVersionsRequest().withBucketName(bucket_name)); + while (true) { + for (Iterator iterator = version_listing.getVersionSummaries().iterator(); iterator.hasNext(); ) { + S3VersionSummary vs = (S3VersionSummary) iterator.next(); + s3.deleteVersion(bucket_name, vs.getKey(), vs.getVersionId()); + } + if (version_listing.isTruncated()) { + version_listing = s3.listNextBatchOfVersions(version_listing); + } else { + break; + } + } + s3.deleteBucket(bucket_name); + } catch (AmazonServiceException e) { + System.err.println(e.getErrorMessage()); + System.exit(1); + } + System.out.println("Done removing bucket: " + bucket_name); + } + } From e5b73e82235134d41502c9030cc584016d48c7e8 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 11:48:33 -0800 Subject: [PATCH 15/28] More changes. --- .../amazonaws/samples/S3TransferExample.java | 71 ++++++------------- .../java/com/amazonaws/samples/S3Util.java | 55 ++++++++++++++ .../samples/SQSExtendedClientExample.java | 30 +------- 3 files changed, 78 insertions(+), 78 deletions(-) create mode 100644 src/main/java/com/amazonaws/samples/S3Util.java diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index 6fed494..7cd7cb0 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -1,6 +1,5 @@ package com.amazonaws.samples; -import com.amazonaws.AmazonServiceException; import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.regions.Region; import com.amazonaws.regions.Regions; @@ -11,12 +10,9 @@ import com.amazonaws.services.s3.transfer.Upload; import java.io.*; -import java.util.Iterator; +import java.util.Arrays; import java.util.UUID; -/** - * Requires that you created a file ~/.aws/credentials - */ public class S3TransferExample { private static final AmazonS3 s3; @@ -43,7 +39,7 @@ public static void main(String[] args) { copyBucketToNewLocation(); - deleteTestBuckets(); + //deleteTestBucketsNow(); } @@ -67,14 +63,29 @@ public static void uploadTmpFileToBucket() { if (tx != null) tx.shutdownNow(); } - public static void deleteTestBuckets() { - deleteEntireBucket(sourceBucket); - deleteEntireBucket(destinationBucket); + /** + * Call if you want buckets deleted sooner than their 1-day expiration + */ + public static void deleteTestBucketsNow() { + S3Util.deleteEntireBucket(sourceBucket); + S3Util.deleteEntireBucket(destinationBucket); } public static void createTestBuckets(String name) { + + BucketLifecycleConfiguration.Rule bucketExpirationRule = + new BucketLifecycleConfiguration.Rule() + .withId("RULE: Delete after 1 day") + .withExpirationInDays(1) + .withStatus(BucketLifecycleConfiguration.ENABLED.toString()); + + BucketLifecycleConfiguration configuration = + new BucketLifecycleConfiguration() + .withRules(Arrays.asList(bucketExpirationRule)); + sourceBucket = name; destinationBucket = name + "-dest"; + System.out.println("Creating a test buckets with names: " + sourceBucket + ", " + destinationBucket); boolean bucketMissing = true; for (Bucket bucket : s3.listBuckets()) { @@ -87,7 +98,9 @@ public static void createTestBuckets(String name) { if (bucketMissing) { System.out.println("Creating bucket " + name + "\n"); s3.createBucket(sourceBucket); + s3.setBucketLifecycleConfiguration(sourceBucket, configuration); s3.createBucket(destinationBucket); + s3.setBucketLifecycleConfiguration(destinationBucket, configuration); } } @@ -110,46 +123,6 @@ private static File createTmpFile() { return tempTestFile; } - public static void deleteEntireBucket(String bucket_name) { - System.out.println("Deleting S3 bucket: " + bucket_name); - final AmazonS3 s3 = new AmazonS3Client(); - try { - System.out.println(" - removing objects from bucket"); - ObjectListing object_listing = s3.listObjects(bucket_name); - while (true) { - for (Iterator iterator = object_listing.getObjectSummaries().iterator(); iterator.hasNext(); ) { - S3ObjectSummary summary = (S3ObjectSummary) iterator.next(); - s3.deleteObject(bucket_name, summary.getKey()); - summary.getETag(); - } - if (object_listing.isTruncated()) { - object_listing = s3.listNextBatchOfObjects(object_listing); - } else { - break; - } - } - ; - - System.out.println(" - removing versions from bucket"); - VersionListing version_listing = s3.listVersions(new ListVersionsRequest().withBucketName(bucket_name)); - while (true) { - for (Iterator iterator = version_listing.getVersionSummaries().iterator(); iterator.hasNext(); ) { - S3VersionSummary vs = (S3VersionSummary) iterator.next(); - s3.deleteVersion(bucket_name, vs.getKey(), vs.getVersionId()); - } - if (version_listing.isTruncated()) { - version_listing = s3.listNextBatchOfVersions(version_listing); - } else { - break; - } - } - s3.deleteBucket(bucket_name); - } catch (AmazonServiceException e) { - System.err.println(e.getErrorMessage()); - System.exit(1); - } - System.out.println("Done removing bucket: " + bucket_name); - } } diff --git a/src/main/java/com/amazonaws/samples/S3Util.java b/src/main/java/com/amazonaws/samples/S3Util.java new file mode 100644 index 0000000..85f58dd --- /dev/null +++ b/src/main/java/com/amazonaws/samples/S3Util.java @@ -0,0 +1,55 @@ +package com.amazonaws.samples; + +import com.amazonaws.AmazonServiceException; +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.AmazonS3Client; +import com.amazonaws.services.s3.model.*; + +import java.util.Iterator; + +/** + * Requires that you created a file ~/.aws/credentials + */ +public class S3Util { + public static void deleteEntireBucket(String bucket_name) { + System.out.println("Deleting S3 bucket: " + bucket_name); + final AmazonS3 s3 = new AmazonS3Client(); + + try { + System.out.println(" - removing objects from bucket"); + ObjectListing object_listing = s3.listObjects(bucket_name); + while (true) { + for (Iterator iterator = object_listing.getObjectSummaries().iterator(); iterator.hasNext(); ) { + S3ObjectSummary summary = (S3ObjectSummary) iterator.next(); + s3.deleteObject(bucket_name, summary.getKey()); + summary.getETag(); + } + if (object_listing.isTruncated()) { + object_listing = s3.listNextBatchOfObjects(object_listing); + } else { + break; + } + } + ; + + System.out.println(" - removing versions from bucket"); + VersionListing version_listing = s3.listVersions(new ListVersionsRequest().withBucketName(bucket_name)); + while (true) { + for (Iterator iterator = version_listing.getVersionSummaries().iterator(); iterator.hasNext(); ) { + S3VersionSummary vs = (S3VersionSummary) iterator.next(); + s3.deleteVersion(bucket_name, vs.getKey(), vs.getVersionId()); + } + if (version_listing.isTruncated()) { + version_listing = s3.listNextBatchOfVersions(version_listing); + } else { + break; + } + } + s3.deleteBucket(bucket_name); + } catch (AmazonServiceException e) { + System.err.println(e.getErrorMessage()); + System.exit(1); + } + System.out.println("Done removing bucket: " + bucket_name); + } +} diff --git a/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java b/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java index ab9ffb4..6984ce4 100644 --- a/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java +++ b/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java @@ -101,37 +101,9 @@ public static void main(String[] args) { sqsExtended.deleteQueue(new DeleteQueueRequest(myQueueUrl)); log.info("Deleted the queue."); - deleteBucketAndAllContents(s3); + S3Util.deleteEntireBucket(s3BucketName); log.info("Deleted the bucket."); } - private static void deleteBucketAndAllContents(AmazonS3 client) { - - ObjectListing objectListing = client.listObjects(s3BucketName); - - while (true) { - for (Iterator iterator = objectListing.getObjectSummaries().iterator(); iterator.hasNext(); ) { - S3ObjectSummary objectSummary = (S3ObjectSummary) iterator.next(); - client.deleteObject(s3BucketName, objectSummary.getKey()); - } - - if (objectListing.isTruncated()) { - objectListing = client.listNextBatchOfObjects(objectListing); - } else { - break; - } - }; - - VersionListing list = client.listVersions(new ListVersionsRequest().withBucketName(s3BucketName)); - - for (Iterator iterator = list.getVersionSummaries().iterator(); iterator.hasNext(); ) { - S3VersionSummary s = (S3VersionSummary) iterator.next(); - client.deleteVersion(s3BucketName, s.getKey(), s.getVersionId()); - } - - client.deleteBucket(s3BucketName); - - } - } From 647e479c4c1df1ebaad4c5006369f9a2fe429238 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 11:49:30 -0800 Subject: [PATCH 16/28] Edit readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f5c0461..ec6bfae 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# AWS SDK for Java Sample Project +# AWS SDK for Java 'Improved' Sample Project A simple Java application illustrating usage of the AWS SDK for Java. From 99339b7170270bf61d9b9737343317b9f1ffe0ee Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 12:01:32 -0800 Subject: [PATCH 17/28] Simplify code using S3Util class. --- .../amazonaws/samples/S3TransferExample.java | 75 ++++--------------- .../java/com/amazonaws/samples/S3Util.java | 64 ++++++++++++++++ 2 files changed, 78 insertions(+), 61 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index 7cd7cb0..571c491 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -10,7 +10,6 @@ import com.amazonaws.services.s3.transfer.Upload; import java.io.*; -import java.util.Arrays; import java.util.UUID; public class S3TransferExample { @@ -29,11 +28,11 @@ public class S3TransferExample { usWest2 = Region.getRegion(Regions.US_WEST_2); s3.setRegion(usWest2); credentialProviderChain = new DefaultAWSCredentialsProviderChain(); - fileKey = createTmpFile(); + fileKey = S3Util.createTmpFile(); } public static void main(String[] args) { - createTestBuckets("test-bucket-" + UUID.randomUUID()); + createSourceAndDestinationBuckets("test-bucket-" + UUID.randomUUID()); uploadTmpFileToBucket(); @@ -43,6 +42,14 @@ public static void main(String[] args) { } + /** + * Call if you want buckets deleted sooner than their 1-day expiration + */ + public static void deleteTestBucketsNow() { + S3Util.deleteEntireBucket(sourceBucket); + S3Util.deleteEntireBucket(destinationBucket); + } + private static void copyBucketToNewLocation() { System.out.println("Copying bucket " + sourceBucket + " to new bucket " + destinationBucket); CopyObjectResult copyObjectResult = s3.copyObject(sourceBucket, fileKey.getName(), destinationBucket, fileKey.getName()); @@ -63,66 +70,12 @@ public static void uploadTmpFileToBucket() { if (tx != null) tx.shutdownNow(); } - /** - * Call if you want buckets deleted sooner than their 1-day expiration - */ - public static void deleteTestBucketsNow() { - S3Util.deleteEntireBucket(sourceBucket); - S3Util.deleteEntireBucket(destinationBucket); - } - - public static void createTestBuckets(String name) { - - BucketLifecycleConfiguration.Rule bucketExpirationRule = - new BucketLifecycleConfiguration.Rule() - .withId("RULE: Delete after 1 day") - .withExpirationInDays(1) - .withStatus(BucketLifecycleConfiguration.ENABLED.toString()); - - BucketLifecycleConfiguration configuration = - new BucketLifecycleConfiguration() - .withRules(Arrays.asList(bucketExpirationRule)); - + public static void createSourceAndDestinationBuckets(String name) + { sourceBucket = name; destinationBucket = name + "-dest"; - - System.out.println("Creating a test buckets with names: " + sourceBucket + ", " + destinationBucket); - boolean bucketMissing = true; - for (Bucket bucket : s3.listBuckets()) { - System.out.println("bucket: " + bucket.getName()); - if (bucket.getName().equals(name)) { - System.out.println("Bucket " + name + " already exists."); - bucketMissing = false; - } - } - if (bucketMissing) { - System.out.println("Creating bucket " + name + "\n"); - s3.createBucket(sourceBucket); - s3.setBucketLifecycleConfiguration(sourceBucket, configuration); - s3.createBucket(destinationBucket); - s3.setBucketLifecycleConfiguration(destinationBucket, configuration); - } + if (!S3Util.bucketExists(sourceBucket)) S3Util.createExpiringBucket(sourceBucket); + if (!S3Util.bucketExists(destinationBucket)) S3Util.createExpiringBucket(destinationBucket); } - private static File createTmpFile() { - File tempTestFile = null; - try { - tempTestFile = File.createTempFile("aws-java-sdk-copy-test", ".txt"); - tempTestFile.deleteOnExit(); - - Writer writer = new OutputStreamWriter(new FileOutputStream(tempTestFile)); - writer.write("abcdefghijklmnopqrstuvwxyz\n"); - writer.write("01234567890112345678901234\n"); - writer.write("!@#$%^&*()-=[]{};':',.<>/?\n"); - writer.write("01234567890112345678901234\n"); - writer.write("abcdefghijklmnopqrstuvwxyz\n"); - writer.close(); - } catch (IOException ioe) { - ioe.printStackTrace(); - } - return tempTestFile; - } - - - } diff --git a/src/main/java/com/amazonaws/samples/S3Util.java b/src/main/java/com/amazonaws/samples/S3Util.java index 85f58dd..cb831d8 100644 --- a/src/main/java/com/amazonaws/samples/S3Util.java +++ b/src/main/java/com/amazonaws/samples/S3Util.java @@ -5,12 +5,20 @@ import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.*; +import java.io.*; +import java.util.Arrays; import java.util.Iterator; /** * Requires that you created a file ~/.aws/credentials */ public class S3Util { + private static final AmazonS3 s3; + + static { + s3 = new AmazonS3Client(); + } + public static void deleteEntireBucket(String bucket_name) { System.out.println("Deleting S3 bucket: " + bucket_name); final AmazonS3 s3 = new AmazonS3Client(); @@ -52,4 +60,60 @@ public static void deleteEntireBucket(String bucket_name) { } System.out.println("Done removing bucket: " + bucket_name); } + + public static File createTmpFile() { + File tempTestFile = null; + try { + tempTestFile = File.createTempFile("aws-java-sdk-copy-test", ".txt"); + tempTestFile.deleteOnExit(); + + Writer writer = new OutputStreamWriter(new FileOutputStream(tempTestFile)); + writer.write("abcdefghijklmnopqrstuvwxyz\n"); + writer.write("01234567890112345678901234\n"); + writer.write("!@#$%^&*()-=[]{};':',.<>/?\n"); + writer.write("01234567890112345678901234\n"); + writer.write("abcdefghijklmnopqrstuvwxyz\n"); + writer.close(); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + return tempTestFile; + } + + public static void createExpiringBucket(String name) { + BucketLifecycleConfiguration.Rule bucketExpirationRule = + new BucketLifecycleConfiguration.Rule() + .withId("RULE: Delete after 1 day") + .withExpirationInDays(1) + .withStatus(BucketLifecycleConfiguration.ENABLED.toString()); + + BucketLifecycleConfiguration configuration = + new BucketLifecycleConfiguration() + .withRules(Arrays.asList(bucketExpirationRule)); + + System.out.println("Creating a test bucket with name: " + name); + boolean bucketMissing = !bucketExists(name); + + if (bucketMissing) { + System.out.println("Creating bucket " + name + "\n"); + s3.createBucket(name); + s3.setBucketLifecycleConfiguration(name, configuration); + } + } + + public static boolean bucketExists(String name) { + for (Bucket bucket : s3.listBuckets()) { + if (bucket.getName().equals(name)) { + return true; + } + } + return false; + } + + public static void showAllBuckets() { + for (Bucket bucket : s3.listBuckets()) { + System.out.println("bucket: " + bucket.getName()); + } + } + } From 05208c039296c964f1a512eb1d793c0ddc663397 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 12:02:16 -0800 Subject: [PATCH 18/28] Minor edit --- .../amazonaws/samples/S3TransferExample.java | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index 571c491..419b9dc 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -33,21 +33,9 @@ public class S3TransferExample { public static void main(String[] args) { createSourceAndDestinationBuckets("test-bucket-" + UUID.randomUUID()); - uploadTmpFileToBucket(); - copyBucketToNewLocation(); - //deleteTestBucketsNow(); - - } - - /** - * Call if you want buckets deleted sooner than their 1-day expiration - */ - public static void deleteTestBucketsNow() { - S3Util.deleteEntireBucket(sourceBucket); - S3Util.deleteEntireBucket(destinationBucket); } private static void copyBucketToNewLocation() { @@ -78,4 +66,9 @@ public static void createSourceAndDestinationBuckets(String name) if (!S3Util.bucketExists(destinationBucket)) S3Util.createExpiringBucket(destinationBucket); } + public static void deleteTestBucketsNow() { + S3Util.deleteEntireBucket(sourceBucket); + S3Util.deleteEntireBucket(destinationBucket); + } + } From 439cca5465ee12663c44e62af3ab3101e3796a90 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 12:13:57 -0800 Subject: [PATCH 19/28] Minor edit again. --- .../com/amazonaws/samples/S3TransferExample.java | 12 ++---------- src/main/java/com/amazonaws/samples/S3Util.java | 12 +++++++++++- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index 419b9dc..046be1e 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -1,10 +1,6 @@ package com.amazonaws.samples; import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; -import com.amazonaws.regions.Region; -import com.amazonaws.regions.Regions; -import com.amazonaws.services.s3.AmazonS3; -import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.*; import com.amazonaws.services.s3.transfer.TransferManager; import com.amazonaws.services.s3.transfer.Upload; @@ -14,8 +10,6 @@ public class S3TransferExample { - private static final AmazonS3 s3; - private static final Region usWest2; private static final DefaultAWSCredentialsProviderChain credentialProviderChain; private static TransferManager tx; @@ -24,9 +18,6 @@ public class S3TransferExample { private static String destinationBucket; static { - s3 = new AmazonS3Client(); - usWest2 = Region.getRegion(Regions.US_WEST_2); - s3.setRegion(usWest2); credentialProviderChain = new DefaultAWSCredentialsProviderChain(); fileKey = S3Util.createTmpFile(); } @@ -35,12 +26,13 @@ public static void main(String[] args) { createSourceAndDestinationBuckets("test-bucket-" + UUID.randomUUID()); uploadTmpFileToBucket(); copyBucketToNewLocation(); + S3Util.showAllBuckets(); //deleteTestBucketsNow(); } private static void copyBucketToNewLocation() { System.out.println("Copying bucket " + sourceBucket + " to new bucket " + destinationBucket); - CopyObjectResult copyObjectResult = s3.copyObject(sourceBucket, fileKey.getName(), destinationBucket, fileKey.getName()); + CopyObjectResult copyObjectResult = S3Util.getS3().copyObject(sourceBucket, fileKey.getName(), destinationBucket, fileKey.getName()); System.out.println("RESULT charged? " + copyObjectResult.isRequesterCharged()); } diff --git a/src/main/java/com/amazonaws/samples/S3Util.java b/src/main/java/com/amazonaws/samples/S3Util.java index cb831d8..0e06838 100644 --- a/src/main/java/com/amazonaws/samples/S3Util.java +++ b/src/main/java/com/amazonaws/samples/S3Util.java @@ -1,6 +1,8 @@ package com.amazonaws.samples; import com.amazonaws.AmazonServiceException; +import com.amazonaws.regions.Region; +import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.*; @@ -12,11 +14,19 @@ /** * Requires that you created a file ~/.aws/credentials */ -public class S3Util { +public class S3Util +{ private static final AmazonS3 s3; + private static final Region usWest2; static { s3 = new AmazonS3Client(); + usWest2 = Region.getRegion(Regions.US_WEST_2); + s3.setRegion(usWest2); + } + + public static AmazonS3 getS3() { + return s3; } public static void deleteEntireBucket(String bucket_name) { From 8ada4a9d903b5526f32fc766beeaf7e4f5fd458b Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 12:14:38 -0800 Subject: [PATCH 20/28] Renamed a class. --- .../java/com/amazonaws/samples/{S3Util.java => S3TestUtil.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/java/com/amazonaws/samples/{S3Util.java => S3TestUtil.java} (99%) diff --git a/src/main/java/com/amazonaws/samples/S3Util.java b/src/main/java/com/amazonaws/samples/S3TestUtil.java similarity index 99% rename from src/main/java/com/amazonaws/samples/S3Util.java rename to src/main/java/com/amazonaws/samples/S3TestUtil.java index 0e06838..71448be 100644 --- a/src/main/java/com/amazonaws/samples/S3Util.java +++ b/src/main/java/com/amazonaws/samples/S3TestUtil.java @@ -14,7 +14,7 @@ /** * Requires that you created a file ~/.aws/credentials */ -public class S3Util +public class S3TestUtil { private static final AmazonS3 s3; private static final Region usWest2; From af0d7c8f03d70ee9c1440b297cce893d9826d28a Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 12:27:43 -0800 Subject: [PATCH 21/28] Minor edit once more. --- .../java/com/amazonaws/samples/S3TestUtil.java | 11 ++++++++--- .../com/amazonaws/samples/S3TransferExample.java | 14 +++++++------- .../samples/SQSExtendedClientExample.java | 2 +- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TestUtil.java b/src/main/java/com/amazonaws/samples/S3TestUtil.java index 71448be..5b1e516 100644 --- a/src/main/java/com/amazonaws/samples/S3TestUtil.java +++ b/src/main/java/com/amazonaws/samples/S3TestUtil.java @@ -8,7 +8,12 @@ import com.amazonaws.services.s3.model.*; import java.io.*; +import java.time.Instant; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; +import java.time.temporal.TemporalAmount; import java.util.Arrays; +import java.util.Date; import java.util.Iterator; /** @@ -93,8 +98,8 @@ public static File createTmpFile() { public static void createExpiringBucket(String name) { BucketLifecycleConfiguration.Rule bucketExpirationRule = new BucketLifecycleConfiguration.Rule() - .withId("RULE: Delete after 1 day") - .withExpirationInDays(1) + .withId("RULE: Delete bucket after 10 minutes") + .withExpirationInDays(1) // expiration date must be midnight GMT .withStatus(BucketLifecycleConfiguration.ENABLED.toString()); BucketLifecycleConfiguration configuration = @@ -105,7 +110,7 @@ public static void createExpiringBucket(String name) { boolean bucketMissing = !bucketExists(name); if (bucketMissing) { - System.out.println("Creating bucket " + name + "\n"); + System.out.println("Creating 10 minute bucket " + name + "\n"); s3.createBucket(name); s3.setBucketLifecycleConfiguration(name, configuration); } diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index 046be1e..1c3390e 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -19,20 +19,20 @@ public class S3TransferExample { static { credentialProviderChain = new DefaultAWSCredentialsProviderChain(); - fileKey = S3Util.createTmpFile(); + fileKey = S3TestUtil.createTmpFile(); } public static void main(String[] args) { createSourceAndDestinationBuckets("test-bucket-" + UUID.randomUUID()); uploadTmpFileToBucket(); copyBucketToNewLocation(); - S3Util.showAllBuckets(); + S3TestUtil.showAllBuckets(); //deleteTestBucketsNow(); } private static void copyBucketToNewLocation() { System.out.println("Copying bucket " + sourceBucket + " to new bucket " + destinationBucket); - CopyObjectResult copyObjectResult = S3Util.getS3().copyObject(sourceBucket, fileKey.getName(), destinationBucket, fileKey.getName()); + CopyObjectResult copyObjectResult = S3TestUtil.getS3().copyObject(sourceBucket, fileKey.getName(), destinationBucket, fileKey.getName()); System.out.println("RESULT charged? " + copyObjectResult.isRequesterCharged()); } @@ -54,13 +54,13 @@ public static void createSourceAndDestinationBuckets(String name) { sourceBucket = name; destinationBucket = name + "-dest"; - if (!S3Util.bucketExists(sourceBucket)) S3Util.createExpiringBucket(sourceBucket); - if (!S3Util.bucketExists(destinationBucket)) S3Util.createExpiringBucket(destinationBucket); + if (!S3TestUtil.bucketExists(sourceBucket)) S3TestUtil.createExpiringBucket(sourceBucket); + if (!S3TestUtil.bucketExists(destinationBucket)) S3TestUtil.createExpiringBucket(destinationBucket); } public static void deleteTestBucketsNow() { - S3Util.deleteEntireBucket(sourceBucket); - S3Util.deleteEntireBucket(destinationBucket); + S3TestUtil.deleteEntireBucket(sourceBucket); + S3TestUtil.deleteEntireBucket(destinationBucket); } } diff --git a/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java b/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java index 6984ce4..7edc26a 100644 --- a/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java +++ b/src/main/java/com/amazonaws/samples/SQSExtendedClientExample.java @@ -101,7 +101,7 @@ public static void main(String[] args) { sqsExtended.deleteQueue(new DeleteQueueRequest(myQueueUrl)); log.info("Deleted the queue."); - S3Util.deleteEntireBucket(s3BucketName); + S3TestUtil.deleteEntireBucket(s3BucketName); log.info("Deleted the bucket."); } From 611e991beb38e25c30c430b2b608bbbc7101df84 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 12:31:39 -0800 Subject: [PATCH 22/28] SImplified code a bit more. --- .../com/amazonaws/samples/S3TestUtil.java | 25 ++++++++++++---- .../amazonaws/samples/S3TransferExample.java | 30 +++---------------- 2 files changed, 24 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TestUtil.java b/src/main/java/com/amazonaws/samples/S3TestUtil.java index 5b1e516..3839cd7 100644 --- a/src/main/java/com/amazonaws/samples/S3TestUtil.java +++ b/src/main/java/com/amazonaws/samples/S3TestUtil.java @@ -1,19 +1,17 @@ package com.amazonaws.samples; import com.amazonaws.AmazonServiceException; +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.regions.Region; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.*; +import com.amazonaws.services.s3.transfer.TransferManager; +import com.amazonaws.services.s3.transfer.Upload; import java.io.*; -import java.time.Instant; -import java.time.ZoneOffset; -import java.time.ZonedDateTime; -import java.time.temporal.TemporalAmount; import java.util.Arrays; -import java.util.Date; import java.util.Iterator; /** @@ -23,11 +21,14 @@ public class S3TestUtil { private static final AmazonS3 s3; private static final Region usWest2; + private static final DefaultAWSCredentialsProviderChain credentialProviderChain; + private static TransferManager tx; static { s3 = new AmazonS3Client(); usWest2 = Region.getRegion(Regions.US_WEST_2); s3.setRegion(usWest2); + credentialProviderChain = new DefaultAWSCredentialsProviderChain(); } public static AmazonS3 getS3() { @@ -131,4 +132,18 @@ public static void showAllBuckets() { } } + public static void uploadTmpFileToBucket(String bucketName, File fileKey) { + System.out.println("Uploading a file to bucket " + bucketName); + tx = new TransferManager(credentialProviderChain.getCredentials()); + + Upload myUpload = tx.upload(bucketName, fileKey.getName(), fileKey); + + try { + myUpload.waitForCompletion(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + if (tx != null) tx.shutdownNow(); + } + } diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index 1c3390e..f475adb 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -1,30 +1,22 @@ package com.amazonaws.samples; -import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.services.s3.model.*; -import com.amazonaws.services.s3.transfer.TransferManager; -import com.amazonaws.services.s3.transfer.Upload; - import java.io.*; import java.util.UUID; -public class S3TransferExample { - - private static final DefaultAWSCredentialsProviderChain credentialProviderChain; - private static TransferManager tx; - +public class S3TransferExample +{ private static File fileKey; private static String sourceBucket; private static String destinationBucket; static { - credentialProviderChain = new DefaultAWSCredentialsProviderChain(); fileKey = S3TestUtil.createTmpFile(); } public static void main(String[] args) { createSourceAndDestinationBuckets("test-bucket-" + UUID.randomUUID()); - uploadTmpFileToBucket(); + S3TestUtil.uploadTmpFileToBucket(sourceBucket, fileKey); copyBucketToNewLocation(); S3TestUtil.showAllBuckets(); //deleteTestBucketsNow(); @@ -35,21 +27,7 @@ private static void copyBucketToNewLocation() { CopyObjectResult copyObjectResult = S3TestUtil.getS3().copyObject(sourceBucket, fileKey.getName(), destinationBucket, fileKey.getName()); System.out.println("RESULT charged? " + copyObjectResult.isRequesterCharged()); } - - public static void uploadTmpFileToBucket() { - System.out.println("Uploading a file to bucket " + sourceBucket); - tx = new TransferManager(credentialProviderChain.getCredentials()); - - Upload myUpload = tx.upload(sourceBucket, fileKey.getName(), fileKey); - - try { - myUpload.waitForCompletion(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - if (tx != null) tx.shutdownNow(); - } - + public static void createSourceAndDestinationBuckets(String name) { sourceBucket = name; From 8bccfca2b55923751b5238b598bff9b4771c91bd Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 12:36:49 -0800 Subject: [PATCH 23/28] Add a second file to upload. --- .../com/amazonaws/samples/S3TransferExample.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index f475adb..066fe9b 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -6,17 +6,20 @@ public class S3TransferExample { - private static File fileKey; + private static File fileKey1; + private static File fileKey2; private static String sourceBucket; private static String destinationBucket; static { - fileKey = S3TestUtil.createTmpFile(); + fileKey1 = S3TestUtil.createTmpFile(); + fileKey2 = S3TestUtil.createTmpFile(); } public static void main(String[] args) { createSourceAndDestinationBuckets("test-bucket-" + UUID.randomUUID()); - S3TestUtil.uploadTmpFileToBucket(sourceBucket, fileKey); + S3TestUtil.uploadTmpFileToBucket(sourceBucket, fileKey1); + S3TestUtil.uploadTmpFileToBucket(sourceBucket, fileKey2); copyBucketToNewLocation(); S3TestUtil.showAllBuckets(); //deleteTestBucketsNow(); @@ -24,10 +27,10 @@ public static void main(String[] args) { private static void copyBucketToNewLocation() { System.out.println("Copying bucket " + sourceBucket + " to new bucket " + destinationBucket); - CopyObjectResult copyObjectResult = S3TestUtil.getS3().copyObject(sourceBucket, fileKey.getName(), destinationBucket, fileKey.getName()); + CopyObjectResult copyObjectResult = S3TestUtil.getS3().copyObject(sourceBucket, fileKey1.getName(), destinationBucket, fileKey1.getName()); System.out.println("RESULT charged? " + copyObjectResult.isRequesterCharged()); } - + public static void createSourceAndDestinationBuckets(String name) { sourceBucket = name; From c1e6039951ddc7fcd318b35b839b8e3f7831417e Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 12:43:05 -0800 Subject: [PATCH 24/28] Minor change --- src/main/java/com/amazonaws/samples/S3TestUtil.java | 5 ++--- src/main/java/com/amazonaws/samples/S3TransferExample.java | 7 ++----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TestUtil.java b/src/main/java/com/amazonaws/samples/S3TestUtil.java index 3839cd7..41f51f5 100644 --- a/src/main/java/com/amazonaws/samples/S3TestUtil.java +++ b/src/main/java/com/amazonaws/samples/S3TestUtil.java @@ -80,7 +80,7 @@ public static void deleteEntireBucket(String bucket_name) { public static File createTmpFile() { File tempTestFile = null; try { - tempTestFile = File.createTempFile("aws-java-sdk-copy-test", ".txt"); + tempTestFile = File.createTempFile("aws-java-sdk-copy-test-", ".txt"); tempTestFile.deleteOnExit(); Writer writer = new OutputStreamWriter(new FileOutputStream(tempTestFile)); @@ -106,8 +106,7 @@ public static void createExpiringBucket(String name) { BucketLifecycleConfiguration configuration = new BucketLifecycleConfiguration() .withRules(Arrays.asList(bucketExpirationRule)); - - System.out.println("Creating a test bucket with name: " + name); + boolean bucketMissing = !bucketExists(name); if (bucketMissing) { diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index 066fe9b..68c6c26 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -11,14 +11,11 @@ public class S3TransferExample private static String sourceBucket; private static String destinationBucket; - static { - fileKey1 = S3TestUtil.createTmpFile(); - fileKey2 = S3TestUtil.createTmpFile(); - } - public static void main(String[] args) { createSourceAndDestinationBuckets("test-bucket-" + UUID.randomUUID()); + fileKey1 = S3TestUtil.createTmpFile(); S3TestUtil.uploadTmpFileToBucket(sourceBucket, fileKey1); + fileKey2 = S3TestUtil.createTmpFile(); S3TestUtil.uploadTmpFileToBucket(sourceBucket, fileKey2); copyBucketToNewLocation(); S3TestUtil.showAllBuckets(); From e5458aa5d5adf09ff9bd4c3b2cee552ca240ae44 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 12:44:42 -0800 Subject: [PATCH 25/28] Minor change again --- src/main/java/com/amazonaws/samples/S3TestUtil.java | 2 +- src/main/java/com/amazonaws/samples/S3TransferExample.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/amazonaws/samples/S3TestUtil.java b/src/main/java/com/amazonaws/samples/S3TestUtil.java index 41f51f5..c43315a 100644 --- a/src/main/java/com/amazonaws/samples/S3TestUtil.java +++ b/src/main/java/com/amazonaws/samples/S3TestUtil.java @@ -106,7 +106,7 @@ public static void createExpiringBucket(String name) { BucketLifecycleConfiguration configuration = new BucketLifecycleConfiguration() .withRules(Arrays.asList(bucketExpirationRule)); - + boolean bucketMissing = !bucketExists(name); if (bucketMissing) { diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index 68c6c26..d9332e6 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -24,6 +24,7 @@ public static void main(String[] args) { private static void copyBucketToNewLocation() { System.out.println("Copying bucket " + sourceBucket + " to new bucket " + destinationBucket); + // need to iterate the bucket here or figure out how to copy all at once CopyObjectResult copyObjectResult = S3TestUtil.getS3().copyObject(sourceBucket, fileKey1.getName(), destinationBucket, fileKey1.getName()); System.out.println("RESULT charged? " + copyObjectResult.isRequesterCharged()); } From 15f3dc1e4f1aa5ddebfe977c2d9da2b05705a966 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 13:08:01 -0800 Subject: [PATCH 26/28] Minor edit once more! --- .../com/amazonaws/samples/S3TestUtil.java | 46 ++++++++++++++++--- .../amazonaws/samples/S3TransferExample.java | 7 +-- 2 files changed, 44 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TestUtil.java b/src/main/java/com/amazonaws/samples/S3TestUtil.java index c43315a..3b8b2b4 100644 --- a/src/main/java/com/amazonaws/samples/S3TestUtil.java +++ b/src/main/java/com/amazonaws/samples/S3TestUtil.java @@ -37,8 +37,6 @@ public static AmazonS3 getS3() { public static void deleteEntireBucket(String bucket_name) { System.out.println("Deleting S3 bucket: " + bucket_name); - final AmazonS3 s3 = new AmazonS3Client(); - try { System.out.println(" - removing objects from bucket"); ObjectListing object_listing = s3.listObjects(bucket_name); @@ -46,7 +44,6 @@ public static void deleteEntireBucket(String bucket_name) { for (Iterator iterator = object_listing.getObjectSummaries().iterator(); iterator.hasNext(); ) { S3ObjectSummary summary = (S3ObjectSummary) iterator.next(); s3.deleteObject(bucket_name, summary.getKey()); - summary.getETag(); } if (object_listing.isTruncated()) { object_listing = s3.listNextBatchOfObjects(object_listing); @@ -54,7 +51,6 @@ public static void deleteEntireBucket(String bucket_name) { break; } } - ; System.out.println(" - removing versions from bucket"); VersionListing version_listing = s3.listVersions(new ListVersionsRequest().withBucketName(bucket_name)); @@ -77,6 +73,44 @@ public static void deleteEntireBucket(String bucket_name) { System.out.println("Done removing bucket: " + bucket_name); } + public static void copyEntireBucket(String src_bucket, String dest_bucket) { + System.out.println("Copying S3 bucket '" + src_bucket + "' to destination '" + dest_bucket + "' ..."); + try { + System.out.println(" - copying objects from bucket"); + ObjectListing object_listing = s3.listObjects(src_bucket); + while (true) { + for (Iterator iterator = object_listing.getObjectSummaries().iterator(); iterator.hasNext(); ) { + S3ObjectSummary summary = (S3ObjectSummary) iterator.next(); + s3.copyObject(src_bucket, summary.getKey(), dest_bucket, summary.getKey()); + } + if (object_listing.isTruncated()) { + object_listing = s3.listNextBatchOfObjects(object_listing); + } else { + break; + } + } + + //System.out.println(" - copying versions from bucket"); + //VersionListing version_listing = s3.listVersions(new ListVersionsRequest().withBucketName(src_bucket)); + //while (true) { + // for (Iterator iterator = version_listing.getVersionSummaries().iterator(); iterator.hasNext(); ) { + // S3VersionSummary vs = (S3VersionSummary) iterator.next(); + // s3.deleteVersion(src_bucket, vs.getKey(), vs.getVersionId()); + // } + // if (version_listing.isTruncated()) { + // version_listing = s3.listNextBatchOfVersions(version_listing); + // } else { + // break; + // } + //} + //s3.deleteBucket(src_bucket); + } catch (AmazonServiceException e) { + System.err.println(e.getErrorMessage()); + System.exit(1); + } + System.out.println("Done copying bucket '" + src_bucket + "' to new bucket '" + dest_bucket + "'"); + } + public static File createTmpFile() { File tempTestFile = null; try { @@ -99,8 +133,8 @@ public static File createTmpFile() { public static void createExpiringBucket(String name) { BucketLifecycleConfiguration.Rule bucketExpirationRule = new BucketLifecycleConfiguration.Rule() - .withId("RULE: Delete bucket after 10 minutes") - .withExpirationInDays(1) // expiration date must be midnight GMT + .withId("RULE: Delete bucket after 1 day") + .withExpirationInDays(1) // expiration date must be midnight GMT and is effectively GMT-8, or around 4pm .withStatus(BucketLifecycleConfiguration.ENABLED.toString()); BucketLifecycleConfiguration configuration = diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index d9332e6..0014436 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -24,9 +24,10 @@ public static void main(String[] args) { private static void copyBucketToNewLocation() { System.out.println("Copying bucket " + sourceBucket + " to new bucket " + destinationBucket); - // need to iterate the bucket here or figure out how to copy all at once - CopyObjectResult copyObjectResult = S3TestUtil.getS3().copyObject(sourceBucket, fileKey1.getName(), destinationBucket, fileKey1.getName()); - System.out.println("RESULT charged? " + copyObjectResult.isRequesterCharged()); + //CopyObjectResult copyObjectResult = S3TestUtil.getS3().copyObject(sourceBucket, fileKey1.getName(), destinationBucket, fileKey1.getName()); + + S3TestUtil.copyEntireBucket(sourceBucket, destinationBucket); + } public static void createSourceAndDestinationBuckets(String name) From 0c1c5941a38cfd000432b64c40810b6d79d952b5 Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 13:09:55 -0800 Subject: [PATCH 27/28] Another change --- src/main/java/com/amazonaws/samples/S3TestUtil.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TestUtil.java b/src/main/java/com/amazonaws/samples/S3TestUtil.java index 3b8b2b4..fadf1cd 100644 --- a/src/main/java/com/amazonaws/samples/S3TestUtil.java +++ b/src/main/java/com/amazonaws/samples/S3TestUtil.java @@ -89,13 +89,14 @@ public static void copyEntireBucket(String src_bucket, String dest_bucket) { break; } } - //System.out.println(" - copying versions from bucket"); //VersionListing version_listing = s3.listVersions(new ListVersionsRequest().withBucketName(src_bucket)); //while (true) { // for (Iterator iterator = version_listing.getVersionSummaries().iterator(); iterator.hasNext(); ) { // S3VersionSummary vs = (S3VersionSummary) iterator.next(); - // s3.deleteVersion(src_bucket, vs.getKey(), vs.getVersionId()); + // String key = vs.getKey(); + // String ver = vs.getVersionId(); + // // how?? // } // if (version_listing.isTruncated()) { // version_listing = s3.listNextBatchOfVersions(version_listing); From 4c29c48b100dc5f2c0f32498786b85713ec3fb9f Mon Sep 17 00:00:00 2001 From: Jon Austen Date: Thu, 21 Dec 2017 13:25:41 -0800 Subject: [PATCH 28/28] Minor --- src/main/java/com/amazonaws/samples/S3TransferExample.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/com/amazonaws/samples/S3TransferExample.java b/src/main/java/com/amazonaws/samples/S3TransferExample.java index 0014436..3235930 100644 --- a/src/main/java/com/amazonaws/samples/S3TransferExample.java +++ b/src/main/java/com/amazonaws/samples/S3TransferExample.java @@ -1,6 +1,5 @@ package com.amazonaws.samples; -import com.amazonaws.services.s3.model.*; import java.io.*; import java.util.UUID; @@ -25,9 +24,7 @@ public static void main(String[] args) { private static void copyBucketToNewLocation() { System.out.println("Copying bucket " + sourceBucket + " to new bucket " + destinationBucket); //CopyObjectResult copyObjectResult = S3TestUtil.getS3().copyObject(sourceBucket, fileKey1.getName(), destinationBucket, fileKey1.getName()); - S3TestUtil.copyEntireBucket(sourceBucket, destinationBucket); - } public static void createSourceAndDestinationBuckets(String name)