mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2025-12-11 20:15:30 +01:00
2.4 KiB
2.4 KiB
id, title, status, assignee, parent, priority, tags, whitepaper, last_updated, related_tasks
| id | title | status | assignee | parent | priority | tags | whitepaper | last_updated | related_tasks | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| VOL-004 | Remote Volume Indexing with OpenDAL | Done | james | VOL-000 | High |
|
Section 4.3.5 | 2025-10-14 |
|
Description
Integrate the OpenDAL library to enable indexing of remote storage services like S3, FTP, and SMB as native Spacedrive Volumes.
Note: This task is being implemented in conjunction with CLOUD-003 (Cloud Storage Provider as a Volume).
Implementation Steps
- Integrate the
opendalcrate into the project.- Added to
core/Cargo.tomlwith features for S3, GCS, Azure, etc.
- Added to
- Create a new
Volumeimplementation that uses OpenDAL as a backend.CloudBackendstruct wrapsopendal::Operator- Implements
VolumeBackendtrait for unified I/O abstraction
- Implement the necessary file operations (read, write, list, delete) using the OpenDAL API.
read(),read_range()for efficient content hashingread_dir()for directory traversalmetadata()for file statswrite(),delete()for file operations
- Integrate the new remote volume type into the
VolumeManagerand the indexing process.- VolumeManager integration complete
- Query system supports remote paths
- Indexer uses VolumeBackend abstraction for all I/O operations
- Develop the CLI/UI flow for adding and configuring a remote storage volume.
- CLI:
sd volume add-cloudandsd volume remove-cloud - Secure credential storage in OS keyring
- CLI:
Acceptance Criteria
- A user can add a remote storage service as a new location in their library.
- Files on the remote storage can be indexed and browsed like any other location.
- The system can handle authentication and configuration for different remote services.
Currently Supported Services
S3-Compatible (via OpenDAL):
- Amazon S3
- Cloudflare R2
- MinIO (self-hosted)
- Wasabi
- Backblaze B2
- DigitalOcean Spaces
Planned:
- Google Drive (OAuth required)
- Dropbox (OAuth required)
- OneDrive (OAuth required)
- Google Cloud Storage
- Azure Blob Storage
- FTP/SFTP
Implementation References
See CLOUD-003 for detailed implementation files and architecture.
Next Steps
- Test end-to-end indexing with various OpenDAL services
- Add OAuth support for consumer cloud services (Drive, Dropbox, OneDrive)
- Performance testing and optimization for remote I/O operations