Skip to content

Commit 639ef96

Browse files
authored
feat(storage): implement multiple buckets support (#2904)
1 parent b4cda6c commit 639ef96

File tree

64 files changed

+2230
-188
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+2230
-188
lines changed

aws-storage-s3/src/androidTest/java/com/amplifyframework/storage/s3/AWSS3StorageDownloadAccessLevelTest.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.amplifyframework.storage.StorageCategory;
2424
import com.amplifyframework.storage.StorageException;
2525
import com.amplifyframework.storage.options.StorageDownloadFileOptions;
26+
import com.amplifyframework.storage.options.StorageRemoveOptions;
2627
import com.amplifyframework.storage.options.StorageUploadFileOptions;
2728
import com.amplifyframework.storage.s3.UserCredentials.Credential;
2829
import com.amplifyframework.storage.s3.UserCredentials.IdentityIdSource;
@@ -33,6 +34,7 @@
3334
import com.amplifyframework.testutils.sync.SynchronousAuth;
3435
import com.amplifyframework.testutils.sync.SynchronousStorage;
3536

37+
import org.junit.AfterClass;
3638
import org.junit.Before;
3739
import org.junit.BeforeClass;
3840
import org.junit.Test;
@@ -85,6 +87,15 @@ public static void setUpOnce() throws Exception {
8587
uploadTestFile();
8688
}
8789

90+
/**
91+
* Clean up test resources from test suite.
92+
* @throws Exception from failure to remove test resources.
93+
*/
94+
@AfterClass
95+
public static void tearDownOnce() throws Exception {
96+
removeUploadedTestFiles();
97+
}
98+
8899
/**
89100
* Signs out by default and sets up download file destination.
90101
*
@@ -263,4 +274,39 @@ private static void uploadTestFile() throws Exception {
263274
.build();
264275
storage.uploadFile(key, uploadFile, options);
265276
}
277+
278+
private static void removeUploadedTestFiles() throws Exception {
279+
final String key = UPLOAD_NAME;
280+
281+
synchronousAuth.signOut();
282+
synchronousAuth.signIn(userOne.getUsername(), userOne.getPassword());
283+
284+
StorageRemoveOptions options;
285+
options = StorageRemoveOptions.builder()
286+
.accessLevel(StorageAccessLevel.PUBLIC)
287+
.build();
288+
storage.remove(key, options);
289+
290+
options = StorageRemoveOptions.builder()
291+
.accessLevel(StorageAccessLevel.PROTECTED)
292+
.build();
293+
storage.remove(key, options);
294+
295+
options = StorageRemoveOptions.builder()
296+
.accessLevel(StorageAccessLevel.PRIVATE)
297+
.build();
298+
storage.remove(key, options);
299+
300+
// Upload as user two
301+
synchronousAuth.signOut();
302+
synchronousAuth.signIn(userTwo.getUsername(), userTwo.getPassword());
303+
options = StorageRemoveOptions.builder()
304+
.accessLevel(StorageAccessLevel.PROTECTED)
305+
.build();
306+
storage.remove(key, options);
307+
options = StorageRemoveOptions.builder()
308+
.accessLevel(StorageAccessLevel.PRIVATE)
309+
.build();
310+
storage.remove(key, options);
311+
}
266312
}

aws-storage-s3/src/androidTest/java/com/amplifyframework/storage/s3/AWSS3StorageDownloadTest.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import android.content.Context;
1919

20-
import com.amplifyframework.auth.AuthPlugin;
2120
import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin;
2221
import com.amplifyframework.core.Amplify;
2322
import com.amplifyframework.core.async.Cancelable;
@@ -31,6 +30,7 @@
3130
import com.amplifyframework.storage.TransferState;
3231
import com.amplifyframework.storage.operation.StorageDownloadFileOperation;
3332
import com.amplifyframework.storage.options.StorageDownloadFileOptions;
33+
import com.amplifyframework.storage.options.StorageRemoveOptions;
3434
import com.amplifyframework.storage.options.StorageUploadFileOptions;
3535
import com.amplifyframework.storage.s3.options.AWSS3StorageDownloadFileOptions;
3636
import com.amplifyframework.storage.s3.test.R;
@@ -41,6 +41,7 @@
4141
import com.amplifyframework.testutils.sync.SynchronousStorage;
4242

4343
import org.junit.After;
44+
import org.junit.AfterClass;
4445
import org.junit.Before;
4546
import org.junit.BeforeClass;
4647
import org.junit.Test;
@@ -89,7 +90,7 @@ public final class AWSS3StorageDownloadTest {
8990
public static void setUpOnce() throws Exception {
9091
Context context = getApplicationContext();
9192
WorkmanagerTestUtils.INSTANCE.initializeWorkmanagerTestUtil(context);
92-
SynchronousAuth.delegatingToCognito(context, (AuthPlugin) new AWSCognitoAuthPlugin());
93+
SynchronousAuth.delegatingToCognito(context, new AWSCognitoAuthPlugin());
9394

9495
// Get a handle to storage
9596
storageCategory = TestStorageCategory.create(context, R.raw.amplifyconfiguration);
@@ -112,6 +113,21 @@ public static void setUpOnce() throws Exception {
112113
synchronousStorage.uploadFile(key, smallFile, uploadOptions);
113114
}
114115

116+
/**
117+
* Clean up test resources from test suite.
118+
* @throws Exception from failure to remove test resources.
119+
*/
120+
@AfterClass
121+
public static void tearDownOnce() throws Exception {
122+
StorageRemoveOptions options = StorageRemoveOptions
123+
.builder()
124+
.accessLevel(TESTING_ACCESS_LEVEL)
125+
.build();
126+
127+
synchronousStorage.remove(SMALL_FILE_NAME, options);
128+
synchronousStorage.remove(LARGE_FILE_NAME, options);
129+
}
130+
115131
/**
116132
* Sets up the options to use for transfer.
117133
*

aws-storage-s3/src/androidTest/java/com/amplifyframework/storage/s3/AWSS3StorageListAccessLevelTest.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import android.content.Context;
1919

20+
import com.amplifyframework.auth.AuthException;
2021
import com.amplifyframework.auth.AuthPlugin;
2122
import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin;
2223
import com.amplifyframework.storage.StorageAccessLevel;
@@ -25,6 +26,7 @@
2526
import com.amplifyframework.storage.StorageItem;
2627
import com.amplifyframework.storage.options.StorageListOptions;
2728
import com.amplifyframework.storage.options.StoragePagedListOptions;
29+
import com.amplifyframework.storage.options.StorageRemoveOptions;
2830
import com.amplifyframework.storage.options.StorageUploadFileOptions;
2931
import com.amplifyframework.storage.result.StorageListResult;
3032
import com.amplifyframework.storage.s3.UserCredentials.IdentityIdSource;
@@ -35,6 +37,7 @@
3537
import com.amplifyframework.testutils.sync.SynchronousAuth;
3638
import com.amplifyframework.testutils.sync.SynchronousStorage;
3739

40+
import org.junit.AfterClass;
3841
import org.junit.Before;
3942
import org.junit.BeforeClass;
4043
import org.junit.Test;
@@ -91,6 +94,16 @@ public static void setUpOnce() throws Exception {
9194
uploadTestFiles();
9295
}
9396

97+
/**
98+
* Remove upload test files from test suite.
99+
*
100+
* @throws Exception from failure to remove test resources.
101+
*/
102+
@AfterClass
103+
public static void tearDownOnce() throws Exception {
104+
removeUploadedTestFiles();
105+
}
106+
94107
/**
95108
* Signs out by default.
96109
*
@@ -326,4 +339,44 @@ private static void uploadMultipleTestFiles() throws Exception {
326339
// Upload as user one
327340
synchronousAuth.signOut();
328341
}
342+
343+
private static void removeUploadedTestFiles() throws AuthException, StorageException {
344+
// remove PUBLIC test files
345+
synchronousAuth.signOut();
346+
synchronousAuth.signIn(userOne.getUsername(), userOne.getPassword());
347+
StorageRemoveOptions options = StorageRemoveOptions.builder()
348+
.accessLevel(StorageAccessLevel.PUBLIC)
349+
.build();
350+
for (int i = 0; i < 10; i++) {
351+
storage.remove(pagedUploadKeyPrefix + i, options);
352+
}
353+
storage.remove(uploadKey, options);
354+
355+
// remove PROTECTED test files
356+
options = StorageRemoveOptions.builder()
357+
.accessLevel(StorageAccessLevel.PROTECTED)
358+
.build();
359+
storage.remove(uploadKey, options);
360+
361+
// remove PRIVATE test files
362+
options = StorageRemoveOptions.builder()
363+
.accessLevel(StorageAccessLevel.PRIVATE)
364+
.build();
365+
storage.remove(uploadKey, options);
366+
367+
synchronousAuth.signOut();
368+
synchronousAuth.signIn(userTwo.getUsername(), userTwo.getPassword());
369+
options = StorageRemoveOptions.builder()
370+
.accessLevel(StorageAccessLevel.PROTECTED)
371+
.build();
372+
storage.remove(uploadKey, options);
373+
374+
// remove PRIVATE test files
375+
options = StorageRemoveOptions.builder()
376+
.accessLevel(StorageAccessLevel.PRIVATE)
377+
.build();
378+
storage.remove(uploadKey, options);
379+
380+
synchronousAuth.signOut();
381+
}
329382
}

0 commit comments

Comments
 (0)