Skip to content

TranceLove/android-omh-storage

 
 

Repository files navigation


Android OMH Storage

NPM version License

Chat on Discord Follow on Twitter


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.

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

OMH Storage 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.

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

OmhStorageEntity.OmhFile

Property Google Drive (GMS) Google Drive (non-GMS) OneDrive Dropbox
id
name
createdTime
modifiedTime
parentId
mimeType
extension
size

OmhStorageEntity.OmhFolder

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

File versioning

Show details

OmhFileVersion

Property Google Drive (GMS) Google Drive (non-GMS) OneDrive Dropbox
fieldId
versionId
lastModified

File permissions

Show details

OmhPermission.IdentityPermission

Property Google Drive (GMS) Google Drive (non-GMS) OneDrive Dropbox
id 🟨
role
isInherited 🟨 🟨
identity

Google Drive: isInherited is present only for shared drive items. Dropbox: id equals to underlying identity ID.

OmhIdentity

Type Google Drive (GMS) Google Drive (non-GMS) OneDrive Dropbox
User
Group
Domain
Anyone
Device
Application

OmhIdentity.User

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.

OmhIdentity.Group

Property Google Drive (GMS) Google Drive (non-GMS) OneDrive Dropbox
id
displayName
emailAddress
expirationTime
deleted

OmhPermissionRole

Role Google Drive (GMS) Google Drive (non-GMS) OneDrive Dropbox
OWNER
WRITER 🟨
COMMENTER
READER 🟨

Dropbox:

  • Dropbox does not support granting a READER role, 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 WRITER role to uploaded files. An exception will be thrown with user message: You don’t have permission to perform this action..

OmhPermissionRecipient

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.

OmhStorageClient.getWebUrl

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.

Contributing

License

Releases

Packages

Contributors

Languages