package s3_constants const ( ExtAmzPrefix = "Seaweed-X-Amz-" ExtAmzOwnerKey = "Seaweed-X-Amz-Owner" ExtAmzAclKey = "Seaweed-X-Amz-Acl" ExtOwnershipKey = "Seaweed-X-Amz-Ownership" ExtVersioningKey = "Seaweed-X-Amz-Versioning" ExtVersionIdKey = "Seaweed-X-Amz-Version-Id" ExtDeleteMarkerKey = "Seaweed-X-Amz-Delete-Marker" ExtIsLatestKey = "Seaweed-X-Amz-Is-Latest" ExtETagKey = "Seaweed-X-Amz-ETag" ExtLatestVersionIdKey = "Seaweed-X-Amz-Latest-Version-Id" ExtLatestVersionFileNameKey = "Seaweed-X-Amz-Latest-Version-File-Name" ExtAllowEmptyFolders = "Seaweed-X-Amz-Allow-Empty-Folders" // Cached list metadata in .versions directory for single-scan efficiency ExtLatestVersionSizeKey = "Seaweed-X-Amz-Latest-Version-Size" ExtLatestVersionETagKey = "Seaweed-X-Amz-Latest-Version-ETag" ExtLatestVersionMtimeKey = "Seaweed-X-Amz-Latest-Version-Mtime" ExtLatestVersionOwnerKey = "Seaweed-X-Amz-Latest-Version-Owner" ExtLatestVersionIsDeleteMarker = "Seaweed-X-Amz-Latest-Version-Is-Delete-Marker" ExtLatestVersionStorageClassKey = "Seaweed-X-Amz-Latest-Version-Storage-Class" ExtMultipartObjectKey = "key" // Wall-clock nanoseconds (int64 as decimal string) captured at the // moment a versioned entry was demoted from current to noncurrent // by a later PUT or delete marker. Read by the s3 lifecycle engine // to compute NoncurrentDays due time; zero/missing falls back to // the entry's own mtime so legacy data still expires. ExtNoncurrentSinceNsKey = "Seaweed-X-Amz-Noncurrent-Since-Ns" // Set on a .versions directory when a suspended-versioning write made the // base-path null object the current version; cleared whenever a version in // the directory becomes current. Unlike an absent latest pointer, which a // replica may simply not have received yet, this is an explicit signal. ExtNullVersionIsLatestKey = "Seaweed-X-Amz-Null-Version-Is-Latest" // Per-bucket opt-in for the PutObject lifecycle TTL fast path ("true" // to enable). When on, an Expiration.Days rule is stamped as a volume // TTL at write time instead of being expired by the worker. Off by // default: a baked-in TTL can't honor a later policy change (rule // removed or lengthened) the way worker-driven expiration does. ExtLifecycleTtlFastPathKey = "Seaweed-X-Amz-Lifecycle-Ttl-Fast-Path" // S3 checksum storage keys (use x-seaweedfs- prefix to avoid leaking in generic header loop) ExtChecksumAlgorithm = "x-seaweedfs-checksum-algorithm" ExtChecksumValue = "x-seaweedfs-checksum-value" ExtChecksumType = "x-seaweedfs-checksum-type" // Bucket Policy ExtBucketPolicyKey = "Seaweed-X-Amz-Bucket-Policy" // Every attribute the s3tables catalog stores on a table bucket, namespace, // table or view directory entry starts with this. ExtS3TablesPrefix = "s3tables." // Object Retention and Legal Hold ExtObjectLockModeKey = "Seaweed-X-Amz-Object-Lock-Mode" ExtRetentionUntilDateKey = "Seaweed-X-Amz-Retention-Until-Date" ExtLegalHoldKey = "Seaweed-X-Amz-Legal-Hold" ExtObjectLockEnabledKey = "Seaweed-X-Amz-Object-Lock-Enabled" // Object Lock Bucket Configuration (individual components, not XML) ExtObjectLockDefaultModeKey = "Lock-Default-Mode" ExtObjectLockDefaultDaysKey = "Lock-Default-Days" ExtObjectLockDefaultYearsKey = "Lock-Default-Years" ) // Object Lock and Retention Constants const ( // Retention modes RetentionModeGovernance = "GOVERNANCE" RetentionModeCompliance = "COMPLIANCE" // Legal hold status LegalHoldOn = "ON" LegalHoldOff = "OFF" // Object lock enabled status ObjectLockEnabled = "Enabled" // Bucket versioning status VersioningEnabled = "Enabled" VersioningSuspended = "Suspended" )