aos-dev / Go Storage
Licence: apache-2.0
An application-oriented unified storage layer for Golang.
Stars: ✭ 87
Projects that are alternatives of or similar to Go Storage
go-storage
A vendor-neutral storage library for Golang: Write once, run on every storage service.
Stars: ✭ 387 (+344.83%)
Mutual labels: files, dropbox, storage, fs, s3, cloud-storage
Cakephp File Storage
Abstract file storage and upload plugin for CakePHP. Write to local disk, FTP, S3, Dropbox and more through a single interface. It's not just yet another uploader but a complete storage solution.
Stars: ✭ 202 (+132.18%)
Mutual labels: s3, storage, dropbox
Rclone
"rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Yandex Files
Stars: ✭ 30,541 (+35004.6%)
Mutual labels: s3, cloud-storage, dropbox
rclone-drive
☁️Simple web cloud storage based on rclone, transform cloud storage (s3, google drive, one drive, dropbox) into own custom web-based storage
Stars: ✭ 30 (-65.52%)
Mutual labels: dropbox, s3, cloud-storage
Uppy
The next open source file uploader for web browsers 🐶
Stars: ✭ 24,829 (+28439.08%)
Mutual labels: files, dropbox
Minio
High Performance, Kubernetes Native Object Storage
Stars: ✭ 30,698 (+35185.06%)
Mutual labels: s3, storage
Temperment
Get a random temporary file or directory path that will delete itself
Stars: ✭ 21 (-75.86%)
Mutual labels: files, fs
Radosgw Admin4j
A Ceph Object Storage Admin SDK / Client Library for Java ✨🍰✨
Stars: ✭ 50 (-42.53%)
Mutual labels: s3, storage
S5cmd
Parallel S3 and local filesystem execution tool.
Stars: ✭ 565 (+549.43%)
Mutual labels: s3, storage
Drive
☁️ A distributed cloud based lazy drive to files integrated with Dropbox, Google Drive.
Stars: ✭ 36 (-58.62%)
Mutual labels: storage, dropbox
Arc
📎 Flexible file upload and attachment library for Elixir
Stars: ✭ 1,087 (+1149.43%)
Mutual labels: s3, storage
Libaums
Open source library to access USB Mass Storage devices on Android without rooting your device
Stars: ✭ 769 (+783.91%)
Mutual labels: files, storage
S3fs Fuse
FUSE-based file system backed by Amazon S3
Stars: ✭ 5,733 (+6489.66%)
Mutual labels: s3, cloud-storage
Cyberduck
Cyberduck is a libre FTP, SFTP, WebDAV, Amazon S3, Backblaze B2, Microsoft Azure & OneDrive and OpenStack Swift file transfer client for Mac and Windows.
Stars: ✭ 1,080 (+1141.38%)
Mutual labels: s3, dropbox
Terraform Aws S3 Log Storage
This module creates an S3 bucket suitable for receiving logs from other AWS services such as S3, CloudFront, and CloudTrail
Stars: ✭ 65 (-25.29%)
Mutual labels: s3, storage
Zbox
Zero-details, privacy-focused in-app file system.
Stars: ✭ 1,185 (+1262.07%)
Mutual labels: storage, fs
storage
An application-oriented unified storage layer for Golang.
Goal
- Production ready
- High performance
- Vendor agnostic
Features
Widely services support
- azblob: Azure Blob storage
- cos: Tencent Cloud Object Storage
- dropbox: Dropbox
- fs: Local file system
- gcs: Google Cloud Storage
- kodo: qiniu kodo
- oss: Aliyun Object Storage
- qingstor: QingStor Object Storage
- s3: Amazon S3
- uss: UPYUN Storage Service
Servicer operation support
- List: list all Storager in service
- Get: get a Storager via name
- Create: create a Storager
- Delete: delete a Storager
Storager operation support
Basic operations
- Metadata: get storager metadata
- Read: read file content
- Write: write content into file
- Stat: get file's metadata
- Delete: delete a file or directory
- List: list file in prefix or dir styles
Extended operations
- Copy: copy a file inside storager
- Move: move a file inside storager
- Reach: generate a public accessible url
Multi object modes support
- Multipart: allow doing multipart uploads
- Append: allow appending to an object
- Block: allow combining an object with block ids.
- Page: allow doing random writes
Object metadata support
Common metadata
-
id
: unique key in service -
name
: relative path towards service's work dir -
type
: object type cloud befile
,dir
,link
orunknown
Optional metadata
-
size
: object's content size. -
updated-at
: object's last updated time. -
content-md5
: md5 digest as defined in rfc2616 -
content-type
: media type as defined in rfc2616 -
etag
: entity tag as defined in rfc2616 -
storage-class
: object's storage class as defined in storage proposal
Quick Start
import (
"log"
"github.com/aos-dev/go-storage/v3"
"github.com/aos-dev/go-storage/v3/pairs"
"github.com/aos-dev/go-services-fs"
)
// Init a service.
store, err := fs.NewStorager(pairs.WithWorkDir("/tmp"))
if err != nil {
log.Fatalf("service init failed: %v", err)
}
// Use Storager API to maintain data.
var buf bytes.Buffer
n, err := store.Read("path/to/file", &buf)
if err != nil {
log.Printf("storager read: %v", err)
}
Sponsor
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].