🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ Ehsan
استفاده از هاست دانلود
جامعه پایتون (وب) ایجاد شده در ۰۳ آبان ۱۴۰۲

سلام و وقت بخیر. اگر از هاست دانلود بخوایم استفاده کنیم باید media root و media url رو چجوری کانفیگ کنیم؟ (فرضا اگر subdomain برای هاست دانلود داشته باشیم) و همچنین هاستهای دانلودی که اجازه ارسال فایل با FTP رو فقط میدن، چجوری باید از پنل ادمین براشون فایل آپلود کرد؟ 

خیلی ممنون

درود وقتتون بخیر 
در واقع باید تنظیمات media url و root رو با توجه به ادرس‌های و کانفیگ هاست دانلود بزارید .
کانفیگ Media Root و Media URL در Django برای استفاده از هاست دانلود

برای استفاده از هاست دانلود برای ذخیره فایل‌های رسانه‌ای در Django، باید مراحل زیر را دنبال کنید:

ایجاد پوشه برای فایل‌های رسانه‌ای در هاست دانلود

ابتدا باید در هاست دانلود خود، یک پوشه برای ذخیره فایل‌های رسانه‌ای ایجاد کنید. این پوشه باید به عنوان مکان ذخیره فایل‌های رسانه‌ای شما عمل کند.

mkdir media

تنظیم Media Root در فایل settings.py

در فایل settings.py پروژه Django خود، MEDIA_ROOT را تنظیم کنید. این متغیر باید به مسیر پوشه فایل‌های رسانه‌ای در هاست دانلود اشاره کند.

Python

MEDIA_ROOT = '/path/to/your/media/folder'

به عنوان مثال، اگر پوشه فایل‌های رسانه‌ای شما در هاست دانلود در مسیر /home/your_username/downloads/media قرار دارد، باید MEDIA_ROOT را به صورت زیر تنظیم کنید:

Python

MEDIA_ROOT = '/home/your_username/downloads/media'

تنظیم Media URL در فایل settings.py

MEDIA_URL نیز باید تنظیم شود تا به عنوان آدرس میانی برای فایل‌های رسانه‌ای عمل کند.

Python

MEDIA_URL = 'https://your-media-subdomain.example.com/'

به عنوان مثال، اگر subdomain شما برای هاست دانلود، "downloads" است، باید MEDIA_URL را به صورت زیر تنظیم کنید:

Python

MEDIA_URL = 'https://downloads.example.com/'

تنظیم آدرس Media URL در urls.py

در فایل urls.py پروژه Django، می‌توانید آدرس MEDIA_URL را تنظیم کنید تا به عنوان URL مرجع برای فایل‌های رسانه‌ای عمل کند.

Python

from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
        # ...
   ] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

با انجام این مراحل، Django می‌تواند فایل‌های رسانه‌ای را از هاست دانلود شما بارگذاری و نمایش دهد.

آپلود فایل از پنل ادمین با استفاده از FTP

برای آپلود فایل از پنل ادمین به هاست دانلود که فقط اجازه ارسال فایل با FTP را می‌دهد، می‌توانید از مراحل زیر استفاده کنید:

ایجاد حساب FTP:

ابتدا باید یک حساب FTP در هاست دانلود خود ایجاد کنید. از ارائه‌دهنده هاست یا پنل مدیریتی که استفاده می‌کنید، اطلاعات حساب FTP را دریافت کنید.

نصب یک مشتری FTP:

برای اتصال به هاست دانلود، باید یک مشتری FTP روی سیستم خود نصب کنید. FileZilla یک مشتری FTP معروف و رایگان است که برای این کار استفاده می‌شود.

اتصال به هاست دانلود:

با استفاده از نرم‌افزار FTP (مانند FileZilla)، به هاست دانلود خود وارد شوید. برای این کار، آدرس FTP هاست، نام کاربری FTP و رمز عبور FTP را وارد کنید.

آپلود فایل‌ها:

پس از ورود به سیستم FTP، به پوشه "media" که MEDIA_ROOT در Django به آن اشاره دارد بروید. سپس فایل‌های رسانه‌ای خود را به این پوشه آپلود کنید.

خاتمه دادن به اتصال FTP:

پس از آپلود فایل‌ها، از اتصال FTP خود خارج شوید.

توضیح اضافی:

در مرحله 1، می‌توانید نام پوشه فایل‌های رسانه‌ای را به دلخواه خود انتخاب کنید.

در مرحله 2، باید مسیر کامل پوشه فایل‌های رسانه‌ای را در هاست دانلود وارد کنید.

در مرحله 3، می‌توانید از هر مشتری FTP که می‌خواهید استفاده کنید.

در مرحله 4، پوشه "media" معمولاً در مسیر /home/your_username/downloads/media قرار دارد.

امیدوارم این اطلاعات مفید باشه
موفق باشید 💎
 

Reza Mobaraki ۰۵ آبان ۱۴۰۲، ۰۸:۵۱

خیلی ممنونم از توضیحات جامع و کاملتون. فقط من هنوز یک قسمتش برام سواله که در توضیحات، شما هم پیشنهاد استفاده از یک کلاینت FTP رو دارین. اما ادمین پنل جنگو برای ارسال فایلها اگه اشتباه نکنم از HTTP و HTTPS استفاده میکنه.

 در این صورت ما نمیتونیم از پنل برای ارسال یک فایل استفاده کنیم.

 حالا مشکلی که پیش میاد اینه که فایلی رو که از طریق FTP client ارسال کردیم رو که نمیتونیم به یک object تخصیص بدیم. منظورم اینه که نمیتونیم مثلا بگیم product.file.url .

مگر اینکه مثلا توی یک view بیایم داخل یک دایرکتوری رو بگردیم و فایلهای اون دایرکتوری یا مثلا فایلهایی که به نام فلان شروع میشن رو بگیم مال این product هستن.

 

ممنون میشم اگه نظرتون رو بفرمایید

 

 

Ehsan ۰۵ آبان ۱۴۰۲، ۱۲:۴۳

درود 
خیر من پیشنهاد میکنیم از سرویس‌های ابری استفاده کنید.
برای مشکلی که مطرح کردین به نظرم بایستی کاستوم آدرس فایل رو هندل کنید تا بتونید فایل رو GET کنید.
 

Reza Mobaraki ۰۸ آبان ۱۴۰۲، ۱۳:۴۱