55 lines
1.2 KiB
YAML
55 lines
1.2 KiB
YAML
# Atomic facts for FRE-31
|
|
|
|
- {
|
|
type: task,
|
|
id: FRE-31,
|
|
title: "Implement File Upload with S3/minio Storage",
|
|
status: done,
|
|
completed_on: "2026-03-09",
|
|
assignee: Atlas,
|
|
priority: high,
|
|
}
|
|
- {
|
|
type: feature,
|
|
name: file_upload,
|
|
storage_backend: s3_minio,
|
|
fallback: in_memory_mock,
|
|
}
|
|
- {
|
|
type: constraint,
|
|
name: max_file_size,
|
|
value: 104857600,
|
|
unit: bytes,
|
|
display: "100MB",
|
|
}
|
|
- {
|
|
type: constraint,
|
|
name: allowed_extensions,
|
|
values: [".epub", ".pdf", ".mobi"],
|
|
}
|
|
- { type: package, name: "@aws-sdk/client-s3", version: "^3.1004.0" }
|
|
- { type: package, name: "@aws-sdk/lib-storage", version: "^3.1004.0" }
|
|
- { type: package, name: "@aws-sdk/s3-request-presigner", version: "^3.1004.0" }
|
|
- {
|
|
type: endpoint,
|
|
path: "/api/jobs",
|
|
method: POST,
|
|
handles: ["multipart/form-data", "application/json"],
|
|
}
|
|
- {
|
|
type: module,
|
|
path: "/home/mike/code/AudiobookPipeline/web/src/server/storage.js",
|
|
functions:
|
|
[
|
|
uploadFile,
|
|
getFileUrl,
|
|
deleteFile,
|
|
getUploadUrl,
|
|
initiateMultipartUpload,
|
|
uploadPart,
|
|
completeMultipartUpload,
|
|
abortMultipartUpload,
|
|
storeFileMetadata,
|
|
],
|
|
}
|