shayan.memarzade
shayan.memarzade
خواندن ۱ دقیقه·۴ سال پیش

استفاده از دامنه اختصاصی برای firebase storage

اخیرا بر روی پروژه ی فرانت اندی کار میکردم که نیاز به ذخیره یک سری عکس در سرور داشت، به کارفرما پیشنهاد دادم که میتونیم از firebase استفاده کنیم و هزینه توسعه backend و خرید سرور رو صفر کنیم.

پس از ذخیره عکس ها در firebase storage، آدرس عکس ها بسیار طولانی میشدند، یه چیزی شبیه:

https://firebasestorage.googleapis.com/v0/b/test1234.appspot.com/o/filename1234.jpg?alt=media


کارفرما میخواست عکس ها تحت دامنه اختصاصی خودش بارگذاری بشن. یه چی مثل:

https://testsite.com/images/filename1234.jpg


اما متاسفانه برای firebase storage قابلیت ایجاد custom domain فراهم نیست و این این قابلیت فقط برای firebase hosting فعال میشه.

خب چاره چی بود؟

گزینه اول: سوییچ کردن کل پروژه به google cloud storage، چون اجازه استفاده از دامنه اختصاصی رو میده
گزینه دوم: استفاده از قابلیت Reverse proxy که در وب سرور های nginx یا Apache موجود هست
من ابتدا برای nginx کانفیگ نوشتم


کانفیگ nginx برای استفاده از دامنه اختصاصی در firebase storage

server { server_name testsite.com; client_max_body_size 10G; resolver 8.8.4.4 8.8.8.8 valid=300s; location  ~* ^/image/(.*){ set $base_path 'https://firebasestorage.googleapis.com/v0/b/test1234.appspot.com/o/'; set $file_path $1; set $end_path '?alt=media'; proxy_pass $base_path$file_path$end_path; proxy_send_timeout 120; proxy_read_timeout 120; proxy_connect_timeout 120; } }


بنا به درخواست کارفرما، برای کاهش هزینه که نمیخواست سرور تهیه کنه، درخواست که از هاست اشتراکی ای که قبلا داشت استفاده کنم برای همین کانفیگ htaccess هم نوشتم:

کانفیگ Apache فایل htaccess. برای استفاده از دامنه اختصاصی در firebase storage

<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^babyticker\.com$ RewriteRule ^image/(.*) https://firebasestorage.googleapis.com/v0/b/test1234.appspot.com/o/$1.jpg?alt=media [L,P] </IfModule>



nginxapache
برنامه نویس فرانت اند و طراح UI/UX
شاید از این پست‌ها خوشتان بیاید