https://github.com/ldclabs/ic-oss
  
  
    🗂 A decentralized Object Storage Service on the Internet Computer 
    https://github.com/ldclabs/ic-oss
  
canister ic icp oss s3
        Last synced: 7 months ago 
        JSON representation
    
🗂 A decentralized Object Storage Service on the Internet Computer
- Host: GitHub
 - URL: https://github.com/ldclabs/ic-oss
 - Owner: ldclabs
 - License: apache-2.0
 - Created: 2024-05-10T16:08:36.000Z (over 1 year ago)
 - Default Branch: main
 - Last Pushed: 2025-02-09T02:49:42.000Z (9 months ago)
 - Last Synced: 2025-02-26T09:13:31.565Z (8 months ago)
 - Topics: canister, ic, icp, oss, s3
 - Language: Rust
 - Homepage:
 - Size: 729 KB
 - Stars: 27
 - Watchers: 3
 - Forks: 1
 - Open Issues: 0
 - 
            Metadata Files:
            
- Readme: README.md
 - License: LICENSE-APACHE
 
 
Awesome Lists containing this project
- awesome-internet-computer - ic-oss - A decentralized Object Storage Service on the IC. (Storage and Databases / Candid implementations)
 
README
          # `IC-OSS`
🗂 A decentralized Object Storage Service on the Internet Computer.
💝 Backed by a **$25k Developer Grant** from the [DFINITY Foundation](https://dfinity.org/grants).
## Overview
`ic-oss` is a decentralized object storage service fully running on the Internet Computer that provides:
- Simple and efficient file storage/retrieval
- File directory tree structure
- Unlimited horizontal scalability
- Enterprise-grade access control
Perfect for NFTs, chain blocks, verifiable credentials, blogs, documents, and decentralized applications.

## Key Features
- Large File Support
  - File sharding
  - File encryption
  - Concurrent high-speed uploads
  - Resumable uploads
  - Segmented downloads
- Advanced Organization
  - File directory tree structure
  - Bucket-based clustering
- Flexible Access Control
  - Public/private access
  - Read/write permissions
  - File/folder/bucket level controls
Check more details:
- [Bucket features](https://github.com/ldclabs/ic-oss/blob/main/src/ic_oss_bucket/README.md)
- [Cluster features](https://github.com/ldclabs/ic-oss/blob/main/src/ic_oss_cluster/README.md)
- [Access Control](https://github.com/ldclabs/ic-oss/blob/main/docs/access_control.md)
## Packages
| Package                                                                          | Description                                                  |
| :------------------------------------------------------------------------------- | :----------------------------------------------------------- |
| [ic_oss_bucket](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_bucket)   | Storage bucket smart contract                                |
| [ic_oss_cluster](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_cluster) | Cluster management smart contract                            |
| [ic-oss-can](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_can)         | Rust library for implementing file storage in smart contract |
| [ic-oss-types](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_types)     | Rust shared type definitions                                 |
| [ic-oss](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss)                 | Rust client SDK                                              |
| [ic_oss_ts](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_ts)           | Typescript client SDK                                        |
| [ic-oss-cli](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_cli)         | Command-line tool implemented in Rust                        |
## Who's using?
- [dMsg.net](https://dmsg.net): The world's 1st decentralized end-to-end encrypted messaging application fully running on the Internet Computer blockchain. dMsg.net uses IC-OSS to store user avatars (public), channel logos and encrypted files (private).
If you plan to use this project and have any questions, feel free to open an issue. I will address it as soon as possible.
## Integration

1. Dapp backend: Configure access control via `ic_oss_cluster`
2. Dapp frontend: Obtain `access_token` using `ic-oss-ts` SDK
3. Dapp frontend: Use token to interact with `ic_oss_bucket`
## Examples
- [examples/ai_canister](https://github.com/ldclabs/ic-oss/tree/main/examples/ai_canister): A Rust demonstration project used to show how to implement large file storage in the ICP canister by using `ic-oss-can`.
- [examples/upload_js](https://github.com/ldclabs/ic-oss/tree/main/examples/upload_js): A Javascript demonstration project used to show how to upload files to ic_oss_bucket canister by using `@ldclabs/ic_oss_ts`.
- [examples/video_player](https://github.com/ldclabs/ic-oss/tree/main/examples/video_player): A video player website to test HTTP range request.
## License
Copyright © 2024-2025 [LDC Labs](https://github.com/ldclabs).
`ldclabs/ic-oss` is licensed under the MIT License. See [LICENSE](LICENSE-MIT) for the full license text.