|
|
c498fe7aee
|
Add self-heal missing ETags and harden ETag index persistence
|
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
|
2026-03-31 20:27:18 +08:00 |
|
|
|
e94b341a5b
|
Add robust myfsio_core staleness detection with Python fallback; document Rust extension build in README
|
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
|
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
|
2026-03-25 13:44:34 +08:00 |
|
|
|
f7c1c1f809
|
Update requirements.txt
|
2026-03-25 13:26:42 +08:00 |
|
|
|
0e392e18b4
|
Hide ghost details in object panel when preview fails to load
|
2026-03-24 15:15:03 +08:00 |
|
|
|
8996f1ce06
|
Fix folder selection not showing delete button in bucket browser
|
2026-03-24 12:10:38 +08:00 |
|
|
|
f60dbaf9c9
|
Respect DISPLAY_TIMEZONE in GC and integrity scanner history tables
|
2026-03-23 18:36:13 +08:00 |
|
|
|
326367ae4c
|
Fix integrity scanner batch limit and add cursor-based rotation
|
2026-03-23 17:46:27 +08:00 |
|
|
|
a7f9b0a22f
|
Convert GC to async with polling to prevent proxy timeouts
|
2026-03-23 17:14:04 +08:00 |
|
|
|
5e32cef792
|
Add I/O throttling to GC and integrity scanner to prevent HDD starvation
|
2026-03-23 11:36:38 +08:00 |
|
|
|
9898167f8d
|
Make integrity scan async with progress indicator in UI
|
2026-03-22 14:17:43 +08:00 |
|
|
|
4a553555d3
|
Clean up debug code
|
2026-03-22 11:38:29 +08:00 |
|
|
|
7a3202c996
|
Possible fix for the issue
|
2026-03-22 11:27:52 +08:00 |
|
|
|
bd20ca86ab
|
Further debugging on s3 api issues on Granian
|
2026-03-22 11:22:24 +08:00 |
|
|
|
532cf95d59
|
Debug s3 api issues on Granian
|
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
|
2026-03-22 00:24:04 +08:00 |
|
|
|
7612cb054a
|
further fixes
|
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
|
2026-03-22 00:04:55 +08:00 |
|
|
|
e84f1f1851
|
Fix SigV4 SignatureDoesNotMatch when Expect header is stripped by WSGI server
|
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
|
2026-03-21 22:57:48 +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
|
2026-03-20 17:35:10 +08:00 |
|
|
|
a496862902
|
Fix stale object count on dashboard after deleting all objects in bucket
|
2026-03-17 23:25:30 +08:00 |
|
|
|
df4f27ca2e
|
Fix IAM policy editor injecting prefix on existing policies without one
|
2026-03-15 16:04:35 +08:00 |
|
|
|
d72e0a347e
|
Overhaul IAM: granular actions, multi-key users, prefix-scoped policies
|
2026-03-14 23:50:44 +08:00 |
|
|
|
6ed4b7d8ea
|
Add System page: server info, feature flags, GC and integrity scanner UI
|
2026-03-14 20:27:57 +08:00 |
|
|
|
d878134ebf
|
Switch from Waitress to Granian (Rust/hyper WSGI server) for improved concurrency
|
2026-03-14 18:17:39 +08:00 |
|
|
|
55568d6892
|
Fix video seekbar in static website hosting by adding HTTP Range request support
|
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
|
2026-03-10 22:14:39 +08:00 |
|
|
|
de5377e5ac
|
Add garbage collection: background cleanup of orphaned temp files, multipart uploads, lock files, metadata, versions, and empty directories
|
2026-03-09 17:34:21 +08:00 |
|
|
|
6c912a3d71
|
Add conditional GET/HEAD headers: If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since
|
2026-03-09 15:09:15 +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
|
2026-03-08 13:08:57 +08:00 |
|
|
|
72f5d9d70c
|
Restore data integrity guarantees: Content-MD5 validation, fsync durability, atomic metadata writes, concurrent write protection
|
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
|
2026-03-07 14:08:23 +08:00 |
|
|
|
81ef0fe4c7
|
Fix stale object count in bucket header and metrics dashboard after deletes
|
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
|
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
|
2026-03-02 22:05:54 +08:00 |
|
|
|
5536330aeb
|
Move performance-critical Python functions to Rust: streaming I/O, multipart assembly, and AES-256-GCM encryption
|
2026-02-27 22:55:20 +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
|
2026-02-27 21:57:13 +08:00 |
|
|
|
dfc0058d0d
|
Extend myfsio_core Rust extension with 7 storage hot paths (directory scanning, metadata I/O, object listing, search, bucket stats, cache building)
|
2026-02-27 12:22:39 +08:00 |
|
|
|
27aef84311
|
Fix rclone CopyObject SignatureDoesNotMatch caused by internal metadata leaking as X-Amz-Meta headers
|
2026-02-26 21:39:43 +08:00 |
|
|
|
5003514a3d
|
Fix null ETags in shallow listing by updating etag index on store/delete
|
2026-02-26 18:09:08 +08:00 |
|
|
|
a356bb0c4e
|
perf: shallow listing, os.scandir stats, server-side search for large buckets
|
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
|
2026-02-26 16:29:28 +08:00 |
|
|
|
5bf7962c04
|
Fix UI: versioning modals and object browser panel showing 'null'
|
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
|
2026-02-24 17:19:12 +08:00 |
|
|
|
9c2809c195
|
Backwards compatibility for Proxy trust config
|
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
|
2026-02-22 17:55:40 +08:00 |
|
|
|
6ab702a818
|
Use cached etag in HEAD instead of re-hashing entire file
|
2026-02-22 16:01:46 +08:00 |
|