Kaynağa Gözat

Update provider.py

Add S3_ENABLE_TAGGING to add tags optionally based on the env file.
Suleiman Elkhoury 5 ay önce
ebeveyn
işleme
ccc64ac6b7
1 değiştirilmiş dosya ile 10 ekleme ve 8 silme
  1. 10 8
      backend/open_webui/storage/provider.py

+ 10 - 8
backend/open_webui/storage/provider.py

@@ -17,6 +17,7 @@ from open_webui.config import (
     S3_SECRET_ACCESS_KEY,
     S3_USE_ACCELERATE_ENDPOINT,
     S3_ADDRESSING_STYLE,
+    S3_ENABLE_TAGGING,
     GCS_BUCKET_NAME,
     GOOGLE_APPLICATION_CREDENTIALS_JSON,
     AZURE_STORAGE_ENDPOINT,
@@ -140,18 +141,19 @@ class S3StorageProvider(StorageProvider):
     ) -> Tuple[bytes, str]:
         """Handles uploading of the file to S3 storage."""
         _, file_path = LocalStorageProvider.upload_file(file, filename, tags)
-        tagging = {"TagSet": [{"Key": k, "Value": v} for k, v in tags.items()]}
+        s3_key = os.path.join(self.key_prefix, filename)
         try:
-            s3_key = os.path.join(self.key_prefix, filename)
             self.s3_client.upload_file(file_path, self.bucket_name, s3_key)
-            self.s3_client.put_object_tagging(
-                Bucket=self.bucket_name,
-                Key=s3_key,
-                Tagging=tagging,
-            )
+            if S3_ENABLE_TAGGING and tags:
+                tagging = {"TagSet": [{"Key": k, "Value": v} for k, v in tags.items()]}
+                self.s3_client.put_object_tagging(
+                    Bucket=self.bucket_name,
+                    Key=s3_key,
+                    Tagging=tagging,
+                )
             return (
                 open(file_path, "rb").read(),
-                "s3://" + self.bucket_name + "/" + s3_key,
+                f"s3://{self.bucket_name}/{s3_key}",
             )
         except ClientError as e:
             raise RuntimeError(f"Error uploading file to S3: {e}")