حوالہ
اسٹوریج (S3 / R2 / MinIO)
ترتیب دیں کہ منسلکات، نالج دستاویزات اور اثاثے کہاں محفوظ کیے جائیں۔
AskAIs Customer Service کسی بھی S3 سے ہم آہنگ آبجیکٹ اسٹور سے بات چیت کرتا ہے۔ چند .env متغیرات میں ترمیم کر کے فراہم کنندہ تبدیل کریں — کوڈ یکساں رہتا ہے۔ ذیل میں: AWS S3، Cloudflare R2، اور خود میزبان MinIO۔
کیا کچھ محفوظ ہوتا ہے
- وزیٹرز یا ایجنٹس کی جانب سے اپ لوڈ کردہ پیغام کے منسلکات (تصاویر، ویڈیو، PDF وغیرہ)
- نالج بیس کے ماخذ دستاویزات (RAG انجیشن کے لیے)
- آبجیکٹ key کا ٹیمپلیٹ:
tenants/{tenantId}/yyyy/mm/{uuid}.{ext}
Cloudflare R2 (خود میزبانی کے لیے تجویز کردہ)
R2 میں ایگریس (egress) فیس صفر ہے — اگر آپ بہت سے صارفین کو منسلکات فراہم کرتے ہیں تو یہ بہترین ہے۔ اپنی access key اور secret R2 ڈیش بورڈ → Manage R2 API Tokens سے حاصل کریں۔
# .env
S3_ENDPOINT="https://<account-id>.r2.cloudflarestorage.com"
S3_REGION="auto"
S3_BUCKET="singlink"
S3_ACCESS_KEY="..."
S3_SECRET_KEY="..."
# Public URL for the bucket (custom domain pointing to R2 public access)
S3_PUBLIC_URL="https://files.acme.com"عوامی URL حاصل کرنے کے لیے، بکٹ پر Public access فعال کریں اور ایک حسبِ ضرورت سب ڈومین منسلک کریں (R2 ڈیش بورڈ → بکٹ → Settings → Custom Domains)۔
AWS S3
S3_ENDPOINT="" # leave empty for AWS
S3_REGION="us-east-1"
S3_BUCKET="singlink-prod"
S3_ACCESS_KEY="AKIA..."
S3_SECRET_KEY="..."
S3_PUBLIC_URL="https://singlink-prod.s3.amazonaws.com"بکٹ پالیسی کو access key کے لیے s3:PutObject کی اجازت دینی چاہیے، اور اگر آپ بغیر تصدیق کے ڈاؤن لوڈ چاہتے ہیں تو عوامی پڑھنے کی بھی۔ بصورت دیگر ہم ہر پڑھنے پر presigned GET URLs پر واپس چلے جائیں گے۔
MinIO (مقامی ترقی کے لیے طے شدہ)
S3_ENDPOINT="http://localhost:9002"
S3_REGION="us-east-1"
S3_BUCKET="singlink"
S3_ACCESS_KEY="minio"
S3_SECRET_KEY="minio_dev_password"
S3_PUBLIC_URL="http://localhost:9002/singlink"Backblaze B2 (سستا S3 متبادل)
S3_ENDPOINT="https://s3.us-west-001.backblazeb2.com"
S3_REGION="us-west-001"
S3_BUCKET="singlink"
S3_ACCESS_KEY="..."
S3_SECRET_KEY="..."احتیاطی نکات
- CORS — بکٹ کو آپ کے ویجٹ کے ہوسٹ سے
POSTکی اجازت دینی چاہیے۔ زیادہ تر فراہم کنندگان بطورِ طے شدہ وائلڈ کارڈ استعمال کرتے ہیں؛ R2 کے لیے API کے ذریعے CORS قواعد واضح طور پر مقرر کریں۔ - ریجن
autoصرف R2 کے لیے کام کرتا ہے۔ AWS / B2 کو ایک حقیقی ریجن نام درکار ہوتا ہے۔ - S3_PUBLIC_URL — اگر خالی ہو، تو SDK
S3_ENDPOINT + bucketسے URLs بناتا ہے۔ CDN یا حسبِ ضرورت ڈومین کے پیچھے ہونے پر اسے واضح طور پر مقرر کریں۔