البرمجة

نقل الملفات والمجلدات في Amazon S3 باستخدام PHP

عندما تقوم بنقل جميع الملفات والمجلدات من مجلد إلى آخر في دلو S3 باستخدام PHP، فإن الطريقة الشائعة للقيام بذلك تتضمن خطوات معينة، كما ذكرت:

  1. الحصول على قائمة جميع الكائنات (الملفات والمجلدات) من المجلد المصدر.
  2. نسخ جميع الكائنات إلى المجلد الوجهة.
  3. حذف جميع الكائنات من المجلد المصدر.

ومع ذلك، هناك طريقة أخرى تسمح بتنفيذ هذه العملية بشكل أقصر، وهي باستخدام وظيفة واحدة تقدمها مكتبة AWS SDK for PHP. يمكنك استخدام وظيفة copyObject مع تمرير معرفات المجلدات المصدر والوجهة، وذلك بدلًا من القيام بالخطوات الثلاثة المذكورة:

php
require 'vendor/autoload.php'; // تحميل ملف تعريف الطلبات الخاص بـ AWS use Aws\S3\S3Client; use Aws\Exception\AwsException; // معلومات الاعتماد وإعداد العميل $credentials = new Aws\Credentials\Credentials('your-access-key', 'your-secret-key'); $s3Client = new S3Client([ 'version' => 'latest', 'region' => 'your-region', 'credentials' => $credentials ]); // اسماء المجلدات المصدر والوجهة $sourceFolder = 'source-folder'; $destinationFolder = 'destination-folder'; try { // نسخ كل الكائنات من المجلد المصدر إلى المجلد الوجهة $objects = $s3Client->listObjectsV2([ 'Bucket' => 'your-bucket-name', 'Prefix' => $sourceFolder // ابحث عن الكائنات التي تبدأ بـ $sourceFolder ]); foreach ($objects['Contents'] as $object) { $sourceKey = $object['Key']; $destinationKey = str_replace($sourceFolder, $destinationFolder, $sourceKey); // نسخ الكائن من المجلد المصدر إلى المجلد الوجهة $s3Client->copyObject([ 'Bucket' => 'your-bucket-name', 'CopySource' => 'your-bucket-name/' . $sourceKey, 'Key' => $destinationKey ]); } // حذف جميع الكائنات من المجلد المصدر $s3Client->deleteObjects([ 'Bucket' => 'your-bucket-name', 'Delete' => [ 'Objects' => array_map(function ($object) { return ['Key' => $object['Key']]; }, $objects['Contents']) ] ]); echo "تم نقل جميع الملفات والمجلدات بنجاح."; } catch (AwsException $e) { echo $e->getMessage(); } ?>

باستخدام هذا الكود، يتم نسخ جميع الكائنات (الملفات والمجلدات) من المجلد المصدر إلى المجلد الوجهة مباشرة، ثم يتم حذف جميع الكائنات من المجلد المصدر، كل ذلك في ثلاثة أسطر فقط من الكود.

المزيد من المعلومات

بالتأكيد، إليك استكمال للمقال:

باستخدام الكود السابق، يمكنك الآن تنفيذ عملية نقل الملفات والمجلدات بسرعة وكفاءة في دلو Amazon S3 باستخدام لغة PHP. يُظهر هذا الكود كيف يمكن استخدام وظيفة copyObject المتوفرة في AWS SDK for PHP لنسخ الكائنات من مجلد إلى آخر، وبعد ذلك يتم حذفها باستخدام وظيفة deleteObjects.

هذه الطريقة توفر حلاً بديلًا للخطوات الثلاث التي ذكرتها سابقًا، مما يقلل من تعقيد الكود ويجعل عملية النقل أكثر فعالية. بالإضافة إلى ذلك، يمكنك تكييف هذا الكود لتنفيذ أوامر أخرى مثل البحث عن ملفات معينة أو تغيير أذونات الوصول، مما يجعله أداة مرنة وقوية لإدارة محتوى دلو Amazon S3.

ومن الجدير بالذكر أنه قبل استخدام هذا الكود في بيئة إنتاجية، يجب عليك التأكد من تكوين المتغيرات بشكل صحيح مثل اسم الدلو ومعلومات الاعتماد، كما يجب أن تتحقق من صلاحيات الوصول إلى دلو Amazon S3 المستهدفة.

بهذا، يمكنك الآن البدء في استخدام هذا الكود لنقل الملفات والمجلدات بسرعة وسهولة بين مجلدين داخل دلو Amazon S3 باستخدام لغة PHP.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!