Android OMH Storage streamlines the integration of various cloud storage providers into your Android application by offering a unified API for different storage providers. It supports both Google Mobile Services (GMS) and non-GMS configurations, making it easy to incorporate Google Drive, OneDrive and Dropbox storage providers.
- π± 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
This is the main directory of the mono-repo for Android OMH Storage. If you're searching for a particular package, please click on the corresponding package link below.
For instance, the following screenshots showcase multiple devices with Android, both with GMS and Non-GMS. The same app works without changing a single line of code, supporting multiple storage provider implementations.
Show more
- β Β - 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 | β | β | β | β |
| Escape hatch (get provider SDK) | β | β | β | β |
Show details
| Property | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
|---|---|---|---|---|
| id | β | β | β | β |
| name | β | β | β | β |
| createdTime | β | β | β | β |
| modifiedTime | β | β | β | β |
| parentId | β | β | β | β |
| mimeType | β | β | β | β |
| extension | β | β | β | β |
| size | β | β | β | β |
| Property | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
|---|---|---|---|---|
| id | β | β | β | β |
| name | β | β | β | β |
| createdTime | β | β | β | β |
| modifiedTime | β | β | β | β |
| parentId | β | β | β | β |
OmhStorageMetadata.originalMetadata
| Storage provider | Type |
|---|---|
| Google Drive (GMS) | com.google.api.services.drive.model.File |
| Google Drive (non-GMS) | String |
| OneDrive | com.microsoft.graph.models.DriveItem |
| Dropbox | com.dropbox.core.v2.files.Metadata |
Show details
OmhPermission.IdentityPermission
| Property | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
|---|---|---|---|---|
| id | β | β | β | π¨ |
| role | β | β | β | β |
| isInherited | π¨ | π¨ | β | β |
| identity | β | β | β | β |
Google Drive: The
isInheritedproperty is available only for items in shared drives.
Dropbox: The
idcorresponds to the underlying identity ID.
| Type | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
|---|---|---|---|---|
| User | β | β | β | β |
| Group | β | β | β | β |
| Domain | β | β | β | β |
| Anyone | β | β | β | β |
| Device | β | β | β | β |
| Application | β | β | β | β |
| 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.
| Property | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
|---|---|---|---|---|
| id | β | β | β | β |
| displayName | β | β | β | β |
| emailAddress | β | β | β | β |
| expirationTime | β | β | β | β |
| deleted | β | β | β | β |
| Role | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
|---|---|---|---|---|
| OWNER | β | β | β | β |
| WRITER | β | β | β | π¨ |
| COMMENTER | β | β | β | β |
| READER | β | β | β | π¨ |
Dropbox:
- While the
READERrole 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
WRITERrole for uploaded files. Any attempt will result in an exception with the user message:You donβt have permission to perform this action.
| Type | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
|---|---|---|---|---|
| User | β | β | β | β |
| Group | β | β | β | β |
| Domain | β | β | β | β |
| Anyone | β | β | β | β |
| WithObjectId | β | β | β | β |
| WithAlias | β | β | β | β |
Dropbox: To invite a group, use
WithObjectIdand provide the group ID.
- See LICENSE