انتقال فایل از یک انتقال فایل از هاست به هاست دیگر در شرایطی که حجم فایل بسیار بالا باشد، باعث اتلاف زمان زیاد و هزینهی زیاد برای دانلود و آپلود مجدد فایل است.
انتقال فایلهای با حجم بالا از یک هاست یا سرور به هاست یا سرور دیگر ممکن است با چالشهایی همچون زمان زیاد و هزینه بالا همراه باشد. برای مدیریت بهتر این چالشها و بهینهسازی انتقال فایل، میتوانید از راهکارها و تکنیکهای زیر استفاده کنید:
استفاده از فناوریهای فشردهسازی:
- قبل از انتقال فایلها، میتوانید از فناوریهای فشردهسازی مانند ZIP یا gzip برای کاهش حجم فایلها استفاده کنید. این کار میتواند باعث کاهش زمان و هزینه انتقال شود
برای حل این مشکل میتوان با یک اسکریپت php، کار انتقال فایل از طریق پروتکل http یا ftp را به آسانی و سرعت زیاد به انجام رساند.
سرورها و هاستهای اینترنتی به با سرعتهای بسیار بالا به شبکهی اینترنت متصل هستند و انتقال فایلی که ممکن است دانلود و آپلود آن به یک ساعت زمان نیاز داشته باشد، در عرض چندین ثانیه به انجام میرسد.
نکته امنیتی
پس از پایان انتقال فایل، در اولین فرصت، فایل php انتقال را از روی سرور حذف کنید، همچنین بهتر است انتقال فایل در یک زیرشاخه از دامنهی مقصد به انجام برسد تا در صورت مراجعهی کاربران به دامنهی جدید، به طور اتفاقی، اسکریپت انتقال یا فایل منتقل شده در معرض دید آنان قرار نگیرد.
نکتهی دیگر پیش از اجرای اسکریپت، بررسی وجود نداشتن فایلی همنام با فایل انتقالی در شاخهی فعلی است، زیرا اگر چنین فایلی از قبل موجود باشد بازنویسی خواهد شد.
روش انتقال
پیش از انتقال فایلها از سرور قدیم به جدید، آنها را فشرده کنید و سپس مسیر مستقیم و کامل فایل را در یکی از اسکریپتهای زیر قرار دهید. سپس اسکریپت را در هاست مقصد آپلود نمایید و با وارد کردن آدرس آن در مرورگر، آن را اجرا کنید.انتقال فایلها از یک سرور به سرور دیگر میتواند به دلایل مختلفی انجام شود، مثل تغییر ارائهدهنده هاست، انتقال به یک سرور جدید یا بروزرسانی زیرساختها. در ادامه، دو روش رایج برای انتقال فایلها از یک سرور به سرور دیگر را توضیح میدهم
برای مثال اگر میخواهید فایل http://example.com/learnchi.gz را به هاست جدید https://learnchi.ir منتقل کنید، ابتدا یک شاخهی جدید مانند upload در هاست جدید بسازید، آدرس فایل موجود در هاست قدیمی را در اسکریپت کپی کنید. اسکریپت را در هاست جدید آپلود کنید و در پایان با اجرای دستور https://learnchi.ir/upload/transload.php فایل را با سرعت زیاد از هاست قدیمی به هاست جدید منتقل کنید.
انتقال فایل از سرور به سرور دیگر از طریق پروتکل http
اگر فایل موجود در هاست قدیمی با استفاده از پروتکل http یا ftp بدون رمز قابل دسترسی است
انتقال فایل از هاست به هاست دیگر از طریق پروتکل ftp
اگر قصد انتقال فایل از طریق پروتکل ftp به همراه رمز را دارید، قطعه کد زیر را مطابق نیاز تغییر دهید و از آن برای جابجایی فایل کمک بگیرید
FTP یک پروتکل استاندارد برای انتقال فایل از یک سرور به سرور دیگر است. برای استفاده از FTP، میتوانید از یک نرمافزار FTP مانند FileZilla، WinSCP، یا Cyberduck استفاده کنید. مراحل انتقال فایل به این صورت خواهد بود:
- نصب نرمافزار FTP: نرمافزار FTP را بر روی سیستمعامل خود نصب کنید.
- اتصال به هاست مبدأ: با استفاده از اطلاعات اتصالی که از هاست مبدأ دریافت کردهاید (نام کاربری، رمز عبور، آدرس سرور FTP)، به هاست مبدأ متصل شوید.
- انتقال فایل: از رابط کاربری نرمافزار FTP به فایلهای مورد نظر دسترسی پیدا کرده و آنها را به هاست مقصد منتقل کنید.
روش دوم SSH (Secure Shell) / SCP (Secure Copy Protocol):
اگر دسترسی SSH به هاست دارید، میتوانید از SCP یا rsync (از طریق SSH) برای انتقال فایل استفاده کنید. این روش امنتر است زیرا اطلاعات انتقال با استفاده از اتصال SSH رمزگذاری میشوند.
- استفاده از SCP: ruby
-
scp /path/to/local/file username@destination:/path/on/destination
این دستور فایل محلی را به هاست مقصد انتقال میدهد.
- استفاده از rsync: ruby
-
rsync -avz -e "ssh -p PORT_NUMBER" /path/to/local/file username@destination:/path/on/destination
این دستور همچنین از SSH برای انتقال فایل استفاده میکند و امکان انتقال فایلها با فشردهسازی و همگامسازی فایلها را فراهم میکند.
نکته مهم قبل از انتقال اطلاعات
قبل از هر اقدامی، اطمینان حاصل کنید که اطلاعات اتصال به هاست مقصد (FTP یا SSH) را به دقت دارید و همچنین از ایجاد نسخه پشتیبان (backup) از فایلها قبل از انتقال اطمینان حاصل کنید تا در صورت بروز مشکل، اطلاعات شما حفظ شود.