Files
ladill-transfer/config/transfer.php
T
isaaccladandCursor 4b616a7f04
Deploy Ladill Transfer / deploy (push) Successful in 47s
Simplify recipient emails and add live upload progress on create.
Recipients always get the download link immediately when an email is set.
Large files upload in the background with per-file and overall progress bars.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 13:25:43 +00:00

39 lines
1.6 KiB
PHP

<?php
return [
/*
| Service-to-service API keys (Bearer) for internal callers such as webmail.
*/
'service_api_keys' => array_filter([
'webmail' => env('TRANSFER_API_KEY_WEBMAIL'),
]),
// GHS per GB per month of retention (see qr-suite-decomposition.md §7.3).
'price_per_gb_month' => (float) env('TRANSFER_PRICE_PER_GB_MONTH', 0.30),
// Max single-file upload size (bytes). 0 = no limit (chunked uploads handle large files).
'max_file_bytes' => (int) env('TRANSFER_MAX_FILE_BYTES', 0),
// Bit-sized upload sessions (init → chunk → finalize), same pattern as hosting file manager.
'chunk_upload' => [
'path' => env('TRANSFER_CHUNK_UPLOAD_PATH', storage_path('app/chunked_uploads')),
'chunk_size_bytes' => (int) env('TRANSFER_CHUNK_SIZE_BYTES', 5 * 1024 * 1024),
],
// Max files per transfer.
'max_files_per_transfer' => (int) env('TRANSFER_MAX_FILES', 20),
// Monthly billing cycle length (days) — storage is renewed each period while the wallet can pay.
'billing_period_days' => (int) env('TRANSFER_BILLING_PERIOD_DAYS', 30),
// Days to keep files after a failed renewal before automatic deletion.
'grace_period_days' => (int) env('TRANSFER_GRACE_PERIOD_DAYS', 15),
// Owner emails when a transfer enters grace and before files are deleted.
'owner_grace_email_milestones' => ['grace_entered', '7', '3', '1'],
// Legacy env keys (billing is monthly until cancelled by non-payment + grace).
'default_retention_days' => (int) env('TRANSFER_DEFAULT_RETENTION_DAYS', 30),
'mail_retention_days' => (int) env('TRANSFER_MAIL_RETENTION_DAYS', 30),
];