video thumbnails
This commit is contained in:
@@ -112,6 +112,26 @@ impl ObjectStorage for FakeStorage {
|
||||
.ok_or_else(|| anyhow!("object {key} missing"))
|
||||
}
|
||||
|
||||
async fn get_object_range(
|
||||
&self,
|
||||
key: &str,
|
||||
start: u64,
|
||||
end: Option<u64>,
|
||||
) -> Result<Vec<u8>> {
|
||||
let guard = self.objects.lock().await;
|
||||
let bytes = guard
|
||||
.get(key)
|
||||
.map(|obj| obj.bytes.clone())
|
||||
.ok_or_else(|| anyhow!("object {key} missing"))?;
|
||||
|
||||
let start_idx = start as usize;
|
||||
let end_idx = end.map(|idx| idx.saturating_add(1) as usize).unwrap_or(bytes.len());
|
||||
if start_idx >= bytes.len() {
|
||||
return Ok(Vec::new());
|
||||
}
|
||||
Ok(bytes[start_idx..end_idx.min(bytes.len())].to_vec())
|
||||
}
|
||||
|
||||
async fn delete_object(&self, key: &str) -> Result<()> {
|
||||
let mut guard = self.objects.lock().await;
|
||||
guard.remove(key);
|
||||
|
||||
Reference in New Issue
Block a user