repositorypackage
0.0.0-20250126151236-03ee3a8044ca
Repository: https://github.com/apfs-io/apfs.git
Documentation: pkg.go.dev
# README
APFS - Autoprocessing File System
apfs-io/apfs
is an advanced, automated file-processing tool designed for high-performance handling of filesystem objects. The project provides a gRPC and RESTful API for managing, processing, and streaming file objects.
Features
- Efficient File Processing: Upload, stream, and process file data seamlessly.
- Manifest Management: Manage data manifests by group for organized processing.
- Object Operations: Supports retrieving, updating, and deleting filesystem objects.
- Protocol Buffers: API defined with
proto3
for cross-language compatibility. - REST Integration: REST endpoints auto-generated via gRPC Gateway.
- Comprehensive API Documentation: OpenAPI specs available for easy integration.
API Overview
Services
-
Object Operations
Head
: Retrieve object metadata.Get
: Fetch object data and metadata.Refresh
: Reprocess and refresh object data.Delete
: Delete objects or their subitems.
-
Manifest Operations
SetManifest
: Define or update group manifests.GetManifest
: Fetch group manifest data.
-
Data Upload
Upload
: Stream new file data into the system.
Protocol Buffers Structure
Key Enumerations
ResponseStatusCode
:RESPONSE_STATUS_CODE_OK
: Success.RESPONSE_STATUS_CODE_FAILED
: Error occurred.RESPONSE_STATUS_CODE_NOT_FOUND
: Resource not found.
Key Messages
Data
: Represents file content or metadata.Manifest
: Represents a processing manifest.ObjectID
: Identifies objects within the filesystem.
API Endpoints
Method | Endpoint | Description |
---|---|---|
GET | /head/{id} | Retrieve object metadata. |
GET | /object/{id} | Retrieve object and data. |
PUT | /refresh/{id} | Reprocess an object. |
PUT | /manifest/{group} | Set a manifest for a group. |
GET | /manifest/{group} | Retrieve a group manifest. |
POST | /object | Upload new file data. |
DELETE | /object/{id} | Delete an object or subitems. |
License
This project is licensed under the MIT License. See the LICENSE file for details.