Commit Graph

  • 7ef3820f6e Fix SigV4/SHA256/TCP_NODELAY critical paths; tighten multipart, copy, versioning, and S3 error conformance dev-pyrust kqjy 2026-04-23 17:52:30 +08:00
  • e1fb225034 csrf fixes kqjy 2026-04-22 23:01:32 +08:00
  • 2767e7e79d Optimize bucket listing for 10K-100K objects kqjy 2026-04-22 19:55:44 +08:00
  • 217af6d1c6 Full migration and transition to Rust; Remove python artifacts kqjy 2026-04-22 17:19:19 +08:00
  • 51d54b42ac Rust fixes kqjy 2026-04-22 15:41:18 +08:00
  • 9ec5797919 Applied max-keys to combined current + archived ListObjectVersions output and reports truncation kqjy 2026-04-22 00:12:22 +08:00
  • 8935188c8f Update static website 404 page kqjy 2026-04-21 21:26:50 +08:00
  • c77c592832 Update static website to include proper error handling; add missing features kqjy 2026-04-21 20:54:00 +08:00
  • 501d563df2 Add missing features - notifcations, object lock, acl kqjy 2026-04-21 00:27:50 +08:00
  • ddcdb4026c Fix domains mapping missing kqjy 2026-04-20 22:02:05 +08:00
  • 3e7c0af019 Fix dockerfile issue kqjy 2026-04-20 21:39:06 +08:00
  • 476b9bd2e4 First porting of Python to Rust - update docs and bug fixes kqjy 2026-04-20 21:27:02 +08:00
  • c2ef37b84e Separate Python and Rust into python/ and rust/ with per-stack Dockerfiles kqjy 2026-04-19 14:01:05 +08:00
  • be8e030940 Migrate more Python functions to Rust kqjy 2026-04-19 13:53:55 +08:00
  • ad7b2a02cb Add missing endpoints for Rust S3 API kqjy 2026-04-05 15:22:24 +08:00
  • 72ddd9822c Add docker support for rust integration kqjy 2026-04-03 12:31:11 +08:00
  • 4c30efd802 Update myfsio rust engines - added more implementations kqjy 2026-04-02 21:57:16 +08:00
  • 926a7e6366 Add Rust storage engine foundation kqjy 2026-04-02 17:00:58 +08:00
  • ae11c654f9 Merge pull request 'MyFSIO v0.4.2 Release' (#35) from next into main main v0.4.2 kqjy 2026-04-01 08:33:28 +00:00
  • 1eadc7b75c Fix more-actions dropdown positioning: use Popper fixed strategy instead of raw CSS position:fixed next kqjy 2026-04-01 16:24:42 +08:00
  • 4a224a127b Fix more-actions dropdown triggering row selection on object list kqjy 2026-04-01 16:17:29 +08:00
  • c498fe7aee Add self-heal missing ETags and harden ETag index persistence kqjy 2026-03-31 21:10:47 +08:00
  • 3838aed954 Fix presigned URL security vulnerabilities: enforce key/user status in SigV4 paths, remove duplicate verification, remove X-Forwarded-Host trust kqjy 2026-03-31 20:27:18 +08:00
  • 6a193dbb1c Add --version option for run.py kqjy 2026-03-31 17:21:33 +08:00
  • e94b341a5b Add robust myfsio_core staleness detection with Python fallback; document Rust extension build in README kqjy 2026-03-31 17:13:05 +08:00
  • 2ad3736852 Add intra-bucket cursor tracking to integrity scanner for progressive full coverage; Optimize integrity scanner: early batch exit, lazy sorted walk, cursor-aware index reads kqjy 2026-03-31 17:04:28 +08:00
  • f05b2668c0 Reduce per-request overhead: pre-compile SigV4 regex, in-memory etag index cache, 1MB GET chunks, configurable meta cache, skip fsync for rebuildable caches kqjy 2026-03-25 13:44:34 +08:00
  • f7c1c1f809 Update requirements.txt kqjy 2026-03-25 13:26:42 +08:00
  • f0c95ac0a9 MyFSIO v0.4.1 Release v0.4.1 kqjy 2026-03-25 04:29:28 +00:00
  • 0e392e18b4 Hide ghost details in object panel when preview fails to load kqjy 2026-03-24 15:15:03 +08:00
  • 8996f1ce06 Fix folder selection not showing delete button in bucket browser kqjy 2026-03-24 12:10:38 +08:00
  • f60dbaf9c9 Respect DISPLAY_TIMEZONE in GC and integrity scanner history tables kqjy 2026-03-23 18:36:13 +08:00
  • 1a5a7aa9e1 Auto-refresh Recent Scans/Executions tables after GC and integrity scan completion kqjy 2026-03-23 18:31:13 +08:00
  • 326367ae4c Fix integrity scanner batch limit and add cursor-based rotation kqjy 2026-03-23 17:46:27 +08:00
  • a7f9b0a22f Convert GC to async with polling to prevent proxy timeouts kqjy 2026-03-23 17:14:04 +08:00
  • 0e525713b1 Fix missing CSRF token on presigned URL request kqjy 2026-03-23 16:48:25 +08:00
  • f43fad02fb Replace fetch with XHR for multipart upload progress and add retry logic kqjy 2026-03-23 16:27:28 +08:00
  • eff3e378f3 Fix mobile infinite scroll on object list and ghost preview on fast object swap kqjy 2026-03-23 11:55:46 +08:00
  • 5e32cef792 Add I/O throttling to GC and integrity scanner to prevent HDD starvation kqjy 2026-03-23 11:36:38 +08:00
  • 9898167f8d Make integrity scan async with progress indicator in UI kqjy 2026-03-22 14:17:43 +08:00
  • 8ff4797041 MyFSIO v0.4.0 Release v0.4.0 kqjy 2026-03-22 05:06:47 +00:00
  • 4a553555d3 Clean up debug code kqjy 2026-03-22 11:38:29 +08:00
  • 7a3202c996 Possible fix for the issue kqjy 2026-03-22 11:27:52 +08:00
  • bd20ca86ab Further debugging on s3 api issues on Granian kqjy 2026-03-22 11:22:24 +08:00
  • 532cf95d59 Debug s3 api issues on Granian kqjy 2026-03-22 11:14:32 +08:00
  • 366f8ce60d the middleware now also triggers when Content-Length is '0' but X-Amz-Decoded-Content-Length or aws-chunked headers indicate a body should be present kqjy 2026-03-22 00:24:04 +08:00
  • 7612cb054a further fixes kqjy 2026-03-22 00:16:30 +08:00
  • 966d524dca Fix 0-byte uploads caused by Granian stripping Expect header and missing CONTENT_LENGTH for chunked transfers kqjy 2026-03-22 00:04:55 +08:00
  • e84f1f1851 Fix SigV4 SignatureDoesNotMatch when Expect header is stripped by WSGI server kqjy 2026-03-21 23:48:19 +08:00
  • a059f0502d Fix 0-byte uploads caused by Granian default buffer size; Add SERVER_MAX_BUFFER_SIZE config kqjy 2026-03-21 22:57:48 +08:00
  • afd7173ba0 Fix buttons all showing Running state when only one action is triggered kqjy 2026-03-21 14:51:43 +08:00
  • c807bb2388 Update install/uninstall scripts for encrypted IAM config kqjy 2026-03-20 17:51:00 +08:00
  • aa4f9f5566 Bypass boto3 proxy for object streaming, read directly from storage layer; Add streaming object iterator to eliminate O(n²) directory rescanning on large buckets; Add iter_objects_shallow delegation to EncryptedObjectStorage kqjy 2026-03-20 17:35:10 +08:00
  • 14786151e5 Fix selected object losing highlight on scroll in virtual list kqjy 2026-03-20 12:10:26 +08:00
  • a496862902 Fix stale object count on dashboard after deleting all objects in bucket kqjy 2026-03-17 23:25:30 +08:00
  • df4f27ca2e Fix IAM policy editor injecting prefix on existing policies without one kqjy 2026-03-15 16:04:35 +08:00
  • d72e0a347e Overhaul IAM: granular actions, multi-key users, prefix-scoped policies kqjy 2026-03-14 23:50:44 +08:00
  • 6ed4b7d8ea Add System page: server info, feature flags, GC and integrity scanner UI kqjy 2026-03-14 20:27:57 +08:00
  • 31ebbea680 Fix Docker healthcheck failure: Granian cannot run inside daemon process kqjy 2026-03-14 18:31:12 +08:00
  • d878134ebf Switch from Waitress to Granian (Rust/hyper WSGI server) for improved concurrency kqjy 2026-03-14 18:17:39 +08:00
  • 50fb5aa387 MyFSIO v0.3.9 Release v0.3.9 kqjy 2026-03-14 09:44:14 +00:00
  • 55568d6892 Fix video seekbar in static website hosting by adding HTTP Range request support kqjy 2026-03-10 22:21:55 +08:00
  • a4ae81c77c Add integrity scanner: background detection and healing of corrupted objects, orphaned files, phantom metadata, stale versions, etag cache inconsistencies, and legacy metadata drift kqjy 2026-03-10 22:14:39 +08:00
  • 9da7104887 Redesign tags UI: split pills, grid editor with column headers, ghost delete buttons kqjy 2026-03-10 17:48:17 +08:00
  • cc161bf362 MyFSIO v0.3.8 Release v0.3.8 kqjy 2026-03-10 08:31:27 +00:00
  • de5377e5ac Add garbage collection: background cleanup of orphaned temp files, multipart uploads, lock files, metadata, versions, and empty directories kqjy 2026-03-09 17:34:21 +08:00
  • 80b77b64eb Fix bucket dashboard missing created date and incorrect object count badge in folder view kqjy 2026-03-09 15:27:08 +08:00
  • 6c912a3d71 Add conditional GET/HEAD headers: If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since kqjy 2026-03-09 15:09:15 +08:00
  • 2a0e77a754 MyFSIO v0.3.7 Release v0.3.7 kqjy 2026-03-09 06:25:50 +00:00
  • c6e368324a Update docs.md and docs.html for credential expiry, IAM encryption, admin key env vars, and --reset-cred kqjy 2026-03-08 13:38:44 +08:00
  • 7b6c096bb7 Remove the check out the documentation paragraph at login page kqjy 2026-03-08 13:18:03 +08:00
  • 03353a0aec Add credential expiry support: per-user expires_at with UI management, presets, and badge indicators; Add credential expiry support: per-user expires_at with UI management, presets, and badge indicators; Fix IAM card dropdown clipped by overflow: remove gradient bar, allow overflow visible kqjy 2026-03-08 13:08:57 +08:00
  • eb0e435a5a MyFSIO v0.3.6 Release v0.3.6 kqjy 2026-03-08 04:46:31 +00:00
  • 72f5d9d70c Restore data integrity guarantees: Content-MD5 validation, fsync durability, atomic metadata writes, concurrent write protection kqjy 2026-03-07 17:54:00 +08:00
  • be63e27c15 Reduce per-request CPU overhead: eliminate double stat(), cache content type and policy context, gate logging, configurable stat intervals kqjy 2026-03-07 14:08:23 +08:00
  • 7633007a08 MyFSIO v0.3.5 Release v0.3.5 kqjy 2026-03-07 05:53:02 +00:00
  • 81ef0fe4c7 Fix stale object count in bucket header and metrics dashboard after deletes kqjy 2026-03-03 19:42:37 +08:00
  • 5f24bd920d Reduce P99 tail latency: defer etag index writes, eliminate double cache rebuild, skip redundant stat() in bucket config kqjy 2026-03-02 22:39:37 +08:00
  • 8552f193de Reduce CPU/lock contention under concurrent uploads: split cache lock, in-memory stats, dict copy, lightweight request IDs, defaultdict metrics kqjy 2026-03-02 22:05:54 +08:00
  • de0d869c9f Merge pull request 'MyFSIO v0.3.4 Release' (#27) from next into main v0.3.4 kqjy 2026-03-02 08:31:32 +00:00
  • 5536330aeb Move performance-critical Python functions to Rust: streaming I/O, multipart assembly, and AES-256-GCM encryption kqjy 2026-02-27 22:55:20 +08:00
  • d4657c389d Fix misleading default credentials in README to match actual random generation behavior kqjy 2026-02-27 21:58:10 +08:00
  • 3827235232 Reduce CPU usage on heavy uploads: skip SHA256 body hashing in SigV4, use Rust md5_file post-write instead of per-chunk _HashingReader kqjy 2026-02-27 21:57:13 +08:00
  • fdd068feee MyFSIO v0.3.3 Release v0.3.3 kqjy 2026-02-27 04:49:32 +00:00
  • dfc0058d0d Extend myfsio_core Rust extension with 7 storage hot paths (directory scanning, metadata I/O, object listing, search, bucket stats, cache building) kqjy 2026-02-27 12:22:39 +08:00
  • 27aef84311 Fix rclone CopyObject SignatureDoesNotMatch caused by internal metadata leaking as X-Amz-Meta headers kqjy 2026-02-26 21:39:43 +08:00
  • 66b7677d2c MyFSIO v0.3.2 Release v0.3.2 kqjy 2026-02-26 10:10:19 +00:00
  • 5003514a3d Fix null ETags in shallow listing by updating etag index on store/delete kqjy 2026-02-26 18:09:08 +08:00
  • 4d90ead816 Merge pull request 'Fix incorrect Upgrading & Updates section in Docs' (#24) from next into main v0.3.1 kqjy 2026-02-26 09:50:17 +00:00
  • 20a314e030 Fix incorrect Upgrading & Updates section in Docs kqjy 2026-02-26 17:49:59 +08:00
  • b37a51ed1d MyFSIO v0.3.1 Release kqjy 2026-02-26 09:42:37 +00:00
  • d8232340c3 Update docs kqjy 2026-02-26 17:38:44 +08:00
  • a356bb0c4e perf: shallow listing, os.scandir stats, server-side search for large buckets kqjy 2026-02-26 17:11:07 +08:00
  • 1c328ee3af Fix list performance for large buckets: delimiter-aware shallow listing, cache TTL increase, UI delimiter streaming. header badge shows total bucket objects, fix status bar text concatenation kqjy 2026-02-26 16:29:28 +08:00
  • 5bf7962c04 Fix UI: versioning modals and object browser panel showing 'null' kqjy 2026-02-24 20:41:39 +08:00
  • e06f653606 Fix version panel showing 'null' instead of timestamp, exclude current version from list, auto-refresh versions after upload kqjy 2026-02-24 17:19:12 +08:00
  • 0462a7b62e MyFSIO v0.3.0 Release v0.3.0 kqjy 2026-02-22 10:22:35 +00:00
  • 9c2809c195 Backwards compatibility for Proxy trust config kqjy 2026-02-22 18:03:38 +08:00
  • fb32ca0a7d Harden security: fail-closed policies, presigned URL time/expiry validation, SSRF DNS pinning, lockout cap, proxy trust config kqjy 2026-02-22 17:55:40 +08:00
  • 6ab702a818 Use cached etag in HEAD instead of re-hashing entire file kqjy 2026-02-22 16:01:46 +08:00