feat: add s3_exists to DataStore
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,7 @@ import csv
|
||||
import io
|
||||
import json
|
||||
import boto3
|
||||
from botocore.exceptions import ClientError
|
||||
from dataclasses import dataclass
|
||||
from typing import Any
|
||||
import hashlib
|
||||
@@ -87,5 +88,16 @@ class DataStore:
|
||||
Metadata=metadata,
|
||||
)
|
||||
|
||||
async def s3_exists(self, key: str) -> bool:
|
||||
def _check():
|
||||
try:
|
||||
self._client.head_object(Bucket=self.config.bucket, Key=key)
|
||||
return True
|
||||
except ClientError as e:
|
||||
if e.response["Error"]["Code"] == "404":
|
||||
return False
|
||||
raise
|
||||
return await asyncio.to_thread(_check)
|
||||
|
||||
def hash(self, content: str):
|
||||
return hashlib.md5(content.encode()).hexdigest()
|
||||
|
||||
Reference in New Issue
Block a user