pub async fn object_inspect(
profile_id: ProfileId,
bucket: String,
key: String,
version_id: Option<String>,
store: State<'_, ProfileStoreHandle>,
pool: State<'_, S3ClientPoolHandle>,
capability_cache: State<'_, CapabilityHandle>,
) -> Result<ObjectInspectorReport, AppError>Expand description
Inspect a single S3 object and return an aggregated ObjectInspectorReport.
The report includes:
head— allHeadObjectproperties including user-defined metadata.tags— object tags fromGetObjectTagging.acl_summary— ACL summary fromGetObjectAcl.restore_status— Glacier/Deep Archive restore status parsed from theRestoreheader onHeadObject.version_id— version ID fromHeadObject(also onhead.version_id).checksum_sha256,checksum_md5,checksum_crc32— checksums when available.
AccessDenied on tags or ACL degrades to SectionResult::Denied rather
than a hard error, and the denial is cached so the UI shows disabled
reasons without re-querying.