0.2.2 • Published 3 months ago
react-native-presigned-s3 v0.2.2
react-native-presigned-s3
Handles S3 PreSigned Upload/Download for folders and single files provides hooks, needs backend to deliver PreSigned post and get payloads can be mimicked in app as well but not recommended for access control. To check out expected server responses please see example/server and for simple demo app example/app
Sample
Setup
yarn add react-native-presigned-s3 react-native-background-upload react-native-fs @react-native-async-storage/async-storage
- This Lib has peer-dependency on these 2 libs:
- appGroup setup for Uploader and corresponding Apple doc
- RNFS setup for background downloads RNFS Doc
Usage
First need to define S3Client and Wrap your tree with PS3Provider
const s3Client = new S3Client(handlers, { appGroup: 'com.example.ps3.test', // appGroup of app for background upload support https://developer.apple.com/documentation/foundation/nsfilemanager/1412643-containerurlforsecurityapplicati directory: 'ps3_test', // folder under RNFS.CachesDirectoryPath for local storage immediateDownload: true, shouldPersist: false, persistKey: '@example_ps3_storage_key', // async storage key for presistency retries: 5, });
<PS3Provider S3Client={s3Client}> <QueryClientProvider client={queryClient}> <SafeAreaProvider> <NavigationContainer> <Stack.Navigator> <Stack.Screen name="List" component={ListScreen} initialParams={{ path: 'home/', }} options={{ headerRight: listRightButton, }} /> <Stack.Screen name="Upload" component={UploadScreen} /> </Stack.Navigator> </NavigationContainer> </SafeAreaProvider> </QueryClientProvider> </PS3Provider>
To list files under
prefix
const {files, loading, reload} = useList(prefix);
- To monitor single file and manipulate it
Here we will get single file (assuming key provided is exact and not prefix) and will be updated if its downloaded or uploadedconst {removeFile, files, addDownload} = useList(key, { progress: true, });
- To upload single file under given folder (prefix)
const {addUpload} = useList(current_path);
as seen in example/app this will triggeraddUpload(key, img.path, { payload: {a: 'b'}, // meta data stored in s3 type: img.mime, });
usseList(prefix)
and will also be monitored inseList(key)
and we get realtime upload progress
0.2.2
3 months ago
0.2.1
3 months ago
0.2.0
3 months ago
0.1.8
5 months ago
0.1.7
5 months ago
0.1.9
5 months ago
0.1.0
7 months ago
0.1.2
6 months ago
0.1.1
7 months ago
0.0.9
7 months ago
0.0.8
7 months ago
0.1.4
6 months ago
0.1.3
6 months ago
0.0.7
7 months ago
0.1.5
6 months ago
0.0.6
1 year ago
0.0.5
1 year ago
0.0.4
1 year ago
0.0.3
1 year ago
0.0.2
1 year ago
0.0.1
1 year ago