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, Dropbox, and other supported third-party 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.
- ✅ - 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 | ✅ | ✅ | ✅ | ✅ |
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
| Property | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
|---|---|---|---|---|
| fieldId | ✅ | ✅ | ✅ | ✅ |
| versionId | ✅ | ✅ | ✅ | ✅ |
| lastModified | ✅ | ✅ | ✅ | ✅ |
Show details
OmhPermission.IdentityPermission
| Property | Google Drive (GMS) | Google Drive (non-GMS) | OneDrive | Dropbox |
|---|---|---|---|---|
| id | ✅ | ✅ | ✅ | 🟨 |
| role | ✅ | ✅ | ✅ | ✅ |
| isInherited | 🟨 | 🟨 | ✅ | ✅ |
| identity | ✅ | ✅ | ✅ | ✅ |
Google Drive:
isInheritedis present only for shared drive items. Dropbox:idequals to 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 without 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:
- Dropbox does not support granting a
READERrole, although it is documented as available in the API. An exception will be thrown with user message:viewer_no_comment isn’t yet supported- Dropbox does not support granting a
WRITERrole to uploaded files. An exception will be thrown with 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 Group, use WithObjectId and provide group ID
OmhStorageClient.createPermission
Dropbox: this method returns null when permission is successfully created.
OmhStorageClient.updatePermission
Dropbox: this method returns null when permission is successfully updated.
Dropbox: a folder needs to be a shared folder to return web URL.
OmhStorageClient.getFilePermissions
Dropbox: a folder needs to be a shared folder to return any permissions, including OWNER permission.
- See LICENSE