Fix PyPI proxy to use correct storage.store() method

The code was calling storage.store_artifact() which doesn't exist.
Changed to use storage.store() which handles content-addressable
storage with automatic deduplication.
This commit is contained in:
Mondo Diaz
2026-01-30 09:41:34 -06:00
parent 0fa991f536
commit d78092de55

View File

@@ -451,20 +451,14 @@ async def pypi_download_file(
content = response.content content = response.content
content_type = response.headers.get('content-type', 'application/octet-stream') content_type = response.headers.get('content-type', 'application/octet-stream')
# Compute hash # Store in S3 (computes hash and deduplicates automatically)
sha256 = hashlib.sha256(content).hexdigest() from io import BytesIO
size = len(content) result = storage.store(BytesIO(content))
sha256 = result.sha256
size = result.size
logger.info(f"PyPI proxy: downloaded {filename}, {size} bytes, sha256={sha256[:12]}") logger.info(f"PyPI proxy: downloaded {filename}, {size} bytes, sha256={sha256[:12]}")
# Store in S3
from io import BytesIO
artifact = storage.store_artifact(
file_obj=BytesIO(content),
filename=filename,
content_type=content_type,
)
# Check if artifact already exists # Check if artifact already exists
existing = db.query(Artifact).filter(Artifact.id == sha256).first() existing = db.query(Artifact).filter(Artifact.id == sha256).first()
if existing: if existing: