React Native OMH Storage
React Native OMH Storage streamlines connecting your React Native app to various cloud storage providers by providing lightweight bridges to native OMH Storage SDKs on both iOS and Android. It supports both Google Mobile Services (GMS) and non-GMS configurations, making it easy to incorporate Google Drive, OneDrive and Dropbox storage providers.
Features
- π± GMS and non-GMS support for all storage providers
- ποΈ Identical API across all storage providers
- π¦ Official storage provider SDK integration
- π Easy configuration and setup
- π¨ Lightweight modules
A single codebase, running seamlessly on any device
For instance, the following screenshots showcase multiple devices with Android, both with GMS and Non-GMS, and iOS. The same app works without changing a single line of code, supporting multiple map provider implementations (Google Drive, OneDrive and Dropbox).
Android:
| Google Drive | Dropbox | OneDrive |
|----------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
| File listing |
|
|
|
|
iOS:
| Google Drive | Dropbox | OneDrive |
|------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
| File listing |
|
|
|
|
Show more
Android:
| Google Drive | Dropbox | OneDrive |
|-----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| File searching |
|
|
|
|
| File creation |
|
|
|
|
| File update |
|
|
|
|
| File deletion |
|
|
|
|
| File upload |
|
|
|
|
| File download |
|
|
|
|
| File metadata |
|
|
|
|
| File versioning |
|
|
|
|
| File permissions |
|
|
|
|
iOS:
| Google Drive | Dropbox | OneDrive |
|-------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|
| File searching |
|
|
|
|
| File creation |
|
|
|
|
| File update |
|
|
|
|
| File deletion |
|
|
|
|
| File upload |
|
|
|
|
| File download |
|
|
|
|
| File metadata |
|
|
|
|
| File versioning |
|
|
|
|
| File permissions |
|
|
|
|
OMH Storage Modules
This is the main directory of the mono-repo for React Native OMH Storage. If you're searching for a particular package, please click on the corresponding package link below.
Documentation
Supported functionality
- β
- supported
- π¨ - partially supported
- β - not supported
Features |
Google Drive (GMS) |
Google Drive (non-GMS) |
OneDrive |
Dropbox |
File listing |
β
|
β
|
β
|
β
|
File searching |
β
|
β
|
β
|
β
|
Folder creation |
β
|
β
|
β
|
β
|
File creation (by mime type) |
β
|
β
|
β |
β |
File creation (by extension) |
β |
β |
β
|
β
|
File update |
β
|
β
|
β
|
β
|
File deletion |
β
|
β
|
β
|
β
|
File permanent deletion |
β
|
β
|
β |
β |
File upload |
β
|
β
|
β
|
β
|
File download |
β
|
β
|
β
|
β
|
File export |
β
|
β
|
β |
β |
File metadata |
β
|
β
|
π¨ |
π¨ |
File versioning |
β
|
β
|
β
|
β
|
File permissions |
π¨ |
π¨ |
π¨ |
π¨ |
File URL |
β
|
β
|
β
|
β
|
File metadata
Show details
[`File`](https://openmobilehub.github.io/react-native-omh-storage/docs/api/core/src/classes/File#properties)
| Property | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
| ------------ | :----------------: | :--------------------: | :------: | :-----: |
| id | β
| β
| β
| β
|
| name | β
| β
| β
| β
|
| createdTime | β
| β
| π¨ | π¨ |
| modifiedTime | β
| β
| β
| β
|
| parentId | β
| β
| β
| β
|
| mimeType | β
| β
| β
| β
|
| extension | β
| β
| β
| β
|
| size | β
| β
| β
| β
|
> **OneDrive, Dropbox**: On Android, the `createdTime` property cannot be retrieved for files.
[`Folder`](https://openmobilehub.github.io/react-native-omh-storage/docs/api/core/src/classes/Folder#properties)
| Property | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
| ------------ | :----------------: | :--------------------: | :------: | :-----: |
| id | β
| β
| β
| β
|
| name | β
| β
| β
| β
|
| createdTime | β
| β
| π¨ | β |
| modifiedTime | β
| β
| β
| β |
| parentId | β
| β
| β
| β
|
> **OneDrive**: On Android, the `createdTime` property cannot be retrieved for folders.
File permissions
Show details
[`Permission#properties`](https://openmobilehub.github.io/react-native-omh-storage/api/core/src/classes/Permission#properties)
| Property | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
| ----------- | :----------------: | :--------------------: | :------: | :-----: |
| id | β
| β
| β
| π¨ |
| role | β
| β
| β
| β
|
| isInherited | π¨ | π¨ | β
| β
|
| identity | β
| β
| β
| β
|
> **Google Drive**: The `isInherited` property is available only for items in shared drives.
> **Dropbox**: The `id` corresponds to the underlying identity ID.
[`Permission#extended-by`](https://openmobilehub.github.io/react-native-omh-storage/docs/api/core/src/classes/Permission#extended-by)
| Type | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
| ----------- | :----------------: | :--------------------: | :------: | :-----: |
| User | β
| β
| β
| β
|
| Group | β
| β
| β
| β
|
| Domain | β
| β
| β | β |
| Anyone | β
| β
| β | β |
| Device | β | β | β
| β |
| Application | β | β | β
| β |
[`UserPermission`](https://openmobilehub.github.io/react-native-omh-storage/docs/api/core/src/classes/UserPermission#properties)
| Property | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
| -------------- | :----------------: | :--------------------: | :------: | :-----: |
| id | β | β | β
| β
|
| displayName | β
| β
| β
| π¨ |
| emailAddress | β
| β
| β | β
|
| expirationTime | β
| β
| β
| β |
| deleted | β
| β
| β | β |
| photoLink | β
| β
| β | β |
| pendingOwner | β | β
| β | β |
> **Dropbox**: Invited users who do not have a Dropbox account will not have a `displayName`.
[`GroupPermission`](https://openmobilehub.github.io/react-native-omh-storage/docs/api/core/src/classes/GroupPermission#properties)
| Property | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
| -------------- | :----------------: | :--------------------: | :------: | :-----: |
| id | β | β | β
| β
|
| displayName | β
| β
| β
| β
|
| emailAddress | β
| β
| β | β |
| expirationTime | β
| β
| β
| β |
| deleted | β
| β
| β | β |
[`PermissionRole`](https://openmobilehub.github.io/react-native-omh-storage/docs/api/core/src/type-aliases/PermissionRole)
| Role | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
| --------- | :----------------: | :--------------------: | :------: | :-----: |
| owner | β
| β
| β
| β
|
| writer | β
| β
| β
| π¨ |
| commenter | β
| β
| β | β
|
| reader | β
| β
| β
| π¨ |
> **Dropbox**:
>
> - While the `reader` role is documented in the API, Dropbox does not support granting this role. Attempting to do so will throw an exception with the user message: `viewer_no_comment isnβt yet supported`.
> - Dropbox also does not support granting the `writer` role for uploaded files. Any attempt will result in an exception with the user message: `You donβt have permission to perform this action`.
[`PermissionRecipient`](https://openmobilehub.github.io/react-native-omh-storage/docs/api/core/src/type-aliases/PermissionRecipient)
| Type | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
| ------------ | :----------------: | :--------------------: | :------: | :-----: |
| user | β
| β
| β
| β
|
| group | β
| β
| β
| β |
| domain | β
| β
| β | β |
| anyone | β
| β
| β | β |
| objectId | β | β | β
| β
|
| alias | β | β | β
| β |
> **Dropbox**: To invite a group, use `objectId` and provide the group ID.
Contributing
License