Skip to content

Conversation

@Chesyre
Copy link
Contributor

@Chesyre Chesyre commented Sep 10, 2025

Add Gofile Storage Driver

Summary

This PR adds support for Gofile.io cloud storage service as a new driver for AList.

Features Implemented

  • Authentication: API token-based authentication
  • File Operations: Upload, download, and direct link generation
  • Folder Operations: Create, list, and navigate directories
  • Management: Move, copy, rename, and delete files/folders
  • Root Folder: Automatic detection of user's root folder
  • Error Handling: Proper error handling and validation

Technical Details

  • Driver Name: Gofile
  • Required Config: API Token (obtainable from Gofile profile page)
  • API Integration: Uses Gofile.io REST API v1
  • Storage Interface: Implements all required driver.Driver methods
  • File Structure: Follows existing driver patterns (meta.go, driver.go, types.go, util.go)

API Methods Implemented

Method Status Description
Init Initialize driver and validate API token
List List files and folders in directory
Link Generate direct download links
MakeDir Create new folders
Move Move files/folders between directories
Rename Rename files and folders
Copy Copy files/folders
Remove Delete files and folders
Put Upload files with progress tracking
Archive operations (GetArchiveMeta, ListArchive, etc.) return errs.NotImplement as they are not supported by the Gofile API.

Testing

  • ✅ Driver initialization with valid/invalid API tokens
  • ✅ File upload and download operations
  • ✅ Directory creation and navigation
  • ✅ File management operations (move, copy, rename, delete)
  • ✅ Error handling for various edge cases

Breaking Changes

None. This is a new driver addition that doesn't affect existing functionality.

Note: This driver has been tested with the Gofile.io API and implements all standard AList storage operations. The implementation follows the project's coding standards and driver architecture patterns.

Configuration Example

Users can obtain their API token from their Gofile profile page after creating an account.

{
  "driver": "Gofile",
  "api_token": "your_gofile_api_token_here"
}

Add support for Gofile.io cloud storage service with full CRUD operations.
Features:
- File and folder listing
- Upload and download functionality
- Create, move, rename, copy, and delete operations
- Direct link generation for file access
- API token authentication
The driver implements all required driver interfaces and follows
the existing driver patterns in the codebase.
@okatu-loli
Copy link
Collaborator

@Chesyre Thanks for your PR! We’ll get to the review shortly.

1 similar comment
@skysliences
Copy link
Contributor

@Chesyre Thanks for your PR! We’ll get to the review shortly.

@skysliences skysliences merged commit 28a8428 into AlistGo:main Sep 11, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants