রিমোট সার্ভারে চিত্রগুলি আপলোড করুন


11

আমি চিত্রগুলি আপলোড করতে ওয়ার্ডপ্রেস মিডিয়া আপলোডার ব্যবহার করছি এবং আমি ভাবছিলাম যে আমার স্থানীয় সার্ভারের পরিবর্তে এটি আমার দূরবর্তী সার্ভারে আপলোড করার কোনও উপায় আছে? উদাহরণ: আমার ওয়ার্ডপ্রেস ব্লগটি সার্ভার এ-তে হোস্ট করা হয়েছে এবং আমি মিডিয়া আপলোডারটি সার্ভার এ এর ​​পরিবর্তে সার্ভার বিতে চিত্রগুলি আপলোড করতে চাই use

উভয় সার্ভারগুলি উবার্টু 10.04 এলটিএসকে ওয়েব সার্ভার হিসাবে এনগিনেক্সের সাথে চালায় এবং উভয়ই এফটিপি এবং এসএফপি সমর্থন করে।


কীভাবে সার্ভারের সাথে সংযোগ স্থাপন করবেন তার বিকল্পগুলি কী কী? এফটিপি, এপিআই বা এসএসএস? যে সার্ভারে আপনি আপনার সামগ্রী সংরক্ষণ করতে চান
পন্টাস আব্রাহামসন

আমার সার্ভারের সাথে সংযোগ স্থাপনের একমাত্র বিকল্প হ'ল এফটিপি এবং এসএসএইচ
রুরিকো

হ্যাকলগ-রিমোট-সংযুক্তি প্লাগইন ব্যবহার করুন https://wordpress.org/plugins/hacklog-remote-attachment/
saman m

আমি বুঝতে পারি যে ওপি ইঙ্গিত করেছে যে এপিআই অ্যাক্সেস কোনও বিকল্প নয়, তবে বেশিরভাগ অ্যাক্সেসযোগ্য সাইটগুলিতে নতুন ওয়ার্ডপ্রেস এপিআই সর্বদা উপলব্ধ থাকে। যেহেতু এটি একটি পুরানো থ্রেড, ভেবেছি আমি অন্যান্য দর্শকদের জন্য এটি উল্লেখ করব। উদাহরণস্বরূপ, আপনি যদি ওয়েবসাইটটি অ্যাক্সেস করতে পারেন তবে আপনি সাধারণত এপিআই অ্যাক্সেস করতে পারেন। মিডিয়া সম্পর্কিত উদাহরণগুলি: developer.wordpress.org/rest-api/references/media
ryanm

উত্তর:


14

আমি সবেমাত্র একটি প্লাগইন তৈরি করেছি যা এটি করে। এটি নিখুঁত নয় তবে এটি তার কাজটি করে।

আপনি আমার গিথুব এ এটি পেতে পারেন: https://github.com/pontusab/wp-ftp-media-library

সুতরাং আপনাকে সারি 28-এর ফাইলের মধ্যে কিছু জিনিস পরিবর্তন করতে হবে:

/**
     * Change this to match your server
     * You only need to change the those with (*)
     * If marked with (-) its optional 
     */

    $settings = array(
        'host'    =>    'ip or hostname',           // * the ftp-server hostname
        'user'    =>    'username',                 // * ftp-user
        'pass'    =>    'password',                 // * ftp-password
        'cdn'     =>    'cdn.example.com',          // * This have to be a pointed domain or subdomain to the root of the uploads
        'path'    =>    '/',                        // - ftp-path, default is root (/). Change here and add the dir on the ftp-server,
        'base'    =>    $upload_dir['basedir']      // Basedir on local 
    );

এই প্লাগইনটি যা করে তা হ'ল, এটি আমাদের বছর সার্ভার এ-এর স্থানীয় মেশিনে কেবল আপলোড স্ট্রাকচারকে / বছর / মাস থেকে পরিবর্তন করে । তারপরে এটি ftp এর সাথে সংযোগ করতে php ব্যবহার করে: ftp_connect । ডাব্লুপিপি জেনারেট_ট্যাচমেন্ট_মেডাটাটা চললে ফাংশনটি জ্বলে ওঠে। এরপরে এটি আপলোড ফোল্ডারে একটি চেক চালায় যে কোনও চিত্র আছে কিনা তা দেখার জন্য , যদি তাই হয় তবে সেগুলি সমস্ত এফটিপি_পুট মাধ্যমে সার্ভারে আপলোড করবে । আপলোডটি শেষ হলে ফাইলগুলি আনলিংক ব্যবহার করে স্থানীয় মেশিন থেকে সরানো হবে ।

তারপরে প্লাগইন চিত্রগুলির url কে "সর্বজনীন" আইপি বা হোস্টনাম এফটিপি-সার্ভারে নির্দেশিত করে pointed আমি স্ট্যাটিক.মিডোমেন.কম বা সিডিএন.মাইডোমাই.কম এর মতো কিছু ব্যবহার করার পরামর্শ দিচ্ছি। তাদের ftp-server (সার্ভার বি) এর দিকে ইঙ্গিত করা দরকার এটি আপনাকে এফটিপি-সার্ভার থেকে চিত্রগুলি লোড করতে সক্ষম করে।

যেমন অন্যান্য সদস্যরা বলছেন যে আপনি এটির জন্য একটি এফটিপি-সার্ভার ব্যবহার করা উচিত, এটি একটি আসল সিডিএন, ফিউজ দ্বারা লাগানো বা অ্যামাজন এস 3 এর মতো কিছু সহ আরও ভাল।


দুর্দান্ত আপলোড করা ঠিক আছে তবে একটি ত্রুটি পেয়েছে সতর্কতা: ftp_put () [ফাংশন.ফুটপুট]: ফাইল তৈরি করা যায়নি। in / home/xxx/0/plugin_file.php লাইনে 99
ফাতিহ

@ পন্টাস আব্রাহামসন, এই দুর্দান্ত সমাধানের জন্য ধন্যবাদ। তবে আমি কীভাবে অক্ষম করতে পারি যে এটি সার্ভারের প্রতিটি মিডিয়া ফাইল অন্য সার্ভারে প্রেরণ শুরু করে? আমি কেবল চাই যে একটি নতুন আপলোড করা ফাইলটি এফটিপিপির মাধ্যমে স্থানান্তরিত হবে।
ব্যবহারকারী3605780

0

এটি প্রায় মনে হচ্ছে আপনি কেবল একটি সিডিএন ব্যবহার করতে চান। বেশিরভাগ সিডিএনগুলি যেভাবে কাজ করে তা হ'ল আপনি স্থানীয়ভাবে আপনার চিত্রগুলি লোড করুন এবং সেগুলি সিডিএন লোকেশনে মিরর হয়ে যায়। তারপরে আপনি একটি ডোমেন সেট আপ করেছেন যা সিডিএন সামগ্রীকে নির্দেশ করে এবং আপনার সাধারণ url এর পরিবর্তে সেই ডোমেনটি ব্যবহার করতে আপনার চিত্র url পুনর্লিখন করে।

বেশ কয়েকটি ভাল প্লাগইন এবং পরিষেবা রয়েছে, যদিও আমার কেবল ডাব্লু 3 টিসি এবং ক্লাউডফ্রন্টের সাথে অভিজ্ঞতা রয়েছে।


হ্যাঁ এটি সিডিএন এর অনুরূপ, সার্ভার এতে পর্যাপ্ত জায়গা না থাকলে এটির কেবলমাত্র 5 গিগাবাইট রয়েছে এবং সার্ভার বিতে 1TB স্থান রয়েছে।
রুরিকো

0

আপনাকে বুঝতে হবে কীভাবে ডাব্লুপি কোনও ফাইল আপলোড করে। একটি পোস্ট অনুরোধ ফাইলটি সার্ভারে প্রেরণ করুন যেখানে এটি অস্থায়ী ফোল্ডারে সংরক্ষণ করা হবে। এর পরে, ডাব্লুপি আপলোড করা ফাইলটি পরীক্ষা করবে, এটি কন্টেন্ট ডিরেক্টরিতে অনুলিপি করবে এবং অস্থায়ী ফাইলটি মুছবে।

এটি একটি খুব জটিল প্রক্রিয়া। চিত্রগুলির জন্য, আপনি 'মিডিয়া_আপলোড_ফাইলে' ookুকতে পারেন, তবে এটি কোনও চিত্র কিনা তা পরীক্ষা করে দেখুন। যদি একটি চিত্র আছে, বাইরের সার্ভারের সাথে WP_Filesystem সঙ্গে এটি অনুলিপি (ব্যবহার পদ্ধতি ftpext এবং বিকল্প মধ্যে আপনার FTP শংসাপত্রগুলি প্রদান), আর ডাব্লু সঙ্গে আপলোড পরিচালনা করতে দিন wp_handle_upload()। কোনও বাহ্যিক সার্ভারে ফাইলটি অনুলিপি করার ক্ষেত্রে, আপনাকে ডাব্লুপিতে url ইত্যাদি সরবরাহ করতে হবে, যাতে ডাব্লুপি ডেটা সেটআপ করতে পারে (যেমন সংযুক্তি পোস্টের জন্য) posts

কোডটি পুরো হাতে দিয়ে এই কাজটি করা হয় না। আপনি যদি বিকাশকারী না হন তবে আরও ভাল ভাড়া করুন। বা এমন একটি প্লাগইন অনুসন্ধান করুন যা এটি আপনার জন্য করবে।


-1

আপনি আপনার আপলোড ডিরেক্টরিতে রিমোট সার্ভারে একটি ডিরেক্টরি মাউন্ট করতে এসএসএফএফস বা এফটিপিএফএস ব্যবহার করতে পারেন । এইভাবে আপনাকে নিজেরাই ওয়ার্ডপ্রেসে কোনও পরিবর্তন করার দরকার পড়বে না।

অপূর্ণতাটি হ'ল সার্ভার বি কোথায় থাকে তার উপর নির্ভর করে আপলোড করা ফাইলটিতে প্রতিটি অ্যাক্সেস ধীর হবে।


আমি এসএসএফএফস বা এফটিপিএফএস ব্যবহার করতে পারি না কারণ আমার হোস্ট FUSE সমর্থন করে না
রুরিকো

তারপরে হোস্টগুলি স্যুইচ করুন। আপনার অনুরোধটি কার্যকর করার ক্ষেত্রে সবচেয়ে বড় সমস্যাটি অন্যান্য সার্ভার অংশে আপলোড (কেবলমাত্র প্লাগইনগুলি থেকে সিডিএন-এ আপলোড করা কোডগুলি অনুলিপি করা) নয়, তবে সেখান থেকে কীভাবে এটি আনতে হবে সেটিকে উপস্থাপন করার জন্য। সার্ভার বি-তে ফাইল সিস্টেমের স্তরের অ্যাক্সেস ছাড়াই অ্যাপাচি ফাইলগুলি পরিবেশন করতে সক্ষম হবে না, সুতরাং আপনাকে সার্ভার বিগুলিকে ওয়েবে অ্যাক্সেসযোগ্য করে তুলতে হবে, তবে তারপরে আপনি কেবল নিজের ওয়ার্ডপ্রেস সেখানে স্থানান্তর করতে পারেন। আপনি সত্যই আপনার পরিস্থিতি সম্পর্কে যথেষ্ট বিবরণ দেন নি। উত্তর পেতে চান্স পেতে চাইলে দয়া করে সমস্ত প্রাসঙ্গিক বিশদ সহ প্রশ্নটি আপডেট করুন।
মার্ক কাপলুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.