عند العمل مع Amazon S3 (خدمة التخزين البسيطة)، ربما تكون قد استخدمت واجهة تحكم الويب لـ S3 لتنزيل، نسخ، أو رفع ملف إلى حاويات S3. استخدام الواجهة التحكم عبر الويب يعتبر أمرًا مقبولًا تمامًا، وهذا ما صممت له في الأساس.
خاصةً بالنسبة للمسؤولين الذين يعتادون على النقر بالماوس أكثر من استخدام أوامر لوحة المفاتيح، فإن واجهة التحكم عبر الويب قد تكون الخيار الأسهل على الإطلاق. ومع ذلك، سيواجه المسؤولون في النهاية حاجة إلى أداء عمليات النقل الضخمة للملفات مع Amazon S3، مثل رفع ملف دون إشراف. الواجهة الرسومية ليست أفضل أداة لذلك.
لتلبية متطلبات الأتمتة مع خدمات الويب Amazon، بما في ذلك Amazon S3، يوفر أداة AWS CLI للمسؤولين خيارات سطر الأوامر لإدارة حاويات Amazon S3 وكائناتها.
في هذا المقال، ستتعلم كيفية استخدام أداة AWS CLI سطر الأوامر لرفع، نسخ، تنزيل، ومزامنة الملفات مع Amazon S3. ستتعلم أيضًا أساسيات توفير الوصول إلى حاويتك S3 وتكوين ملف تعريف الوصول ذلك للعمل مع أداة AWS CLI.
المتطلبات الأولية
نظرًا لأن هذا مقال تعليمي، سيكون هناك أمثلة وعروض توضيحية في الأقسام اللاحقة. من أجل متابعة ذلك بنجاح، ستحتاج إلى تلبية عدة متطلبات.
- حساب AWS. إذا لم يكن لديك اشتراك حالي في AWS، يمكنك الاشتراك في فترة الاستخدام المجاني لخدمات AWS.
- دلوًا AWS S3. يمكنك استخدام دلوًا موجودًا إذا كنت تفضل ذلك. ومع ذلك، يُنصح بإنشاء دلو فارغ بدلاً من ذلك. يرجى الرجوع إلى إنشاء دلو.
- A Windows 10 computer with at least Windows PowerShell 5.1. In this article, PowerShell 7.0.2 will be used.
- يجب تثبيت أداة AWS CLI الإصدار 2 على جهاز الكمبيوتر الخاص بك.
- المجلدات والملفات المحلية التي ستقوم بتحميلها أو مزامنتها مع Amazon S3
تحضير وصولك إلى AWS S3
فلنفترض أن لديك بالفعل المتطلبات المطلوبة. ستعتقد أنه يمكنك الذهاب مباشرةً وبدء تشغيل AWS CLI مع دلو S3 الخاص بك. أعني، أليس من الجميل إذا كانت الأمور بهذه البساطة؟
لأولئك الذين يبدؤون فقط في العمل مع Amazon S3 أو AWS بشكل عام، تهدف هذه القسم لمساعدتك في إعداد الوصول إلى S3 وتكوين ملف تعريف AWS CLI.
يمكن العثور على التوثيق الكامل لإنشاء مستخدم IAM في AWS في الرابط أدناه. إنشاء مستخدم IAM في حسابك AWS الخاص
إنشاء مستخدم IAM مع إذن الوصول إلى S3
عند الوصول إلى AWS باستخدام CLI، ستحتاج إلى إنشاء مستخدم IAM واحد أو أكثر مع وصول كافٍ إلى الموارد التي تنوي العمل معها. في هذا القسم، ستقوم بإنشاء مستخدم IAM مع وصول إلى Amazon S3.
لإنشاء مستخدم IAM مع وصول إلى Amazon S3، تحتاج أولاً إلى تسجيل الدخول إلى وحدة تحكم IAM في AWS. تحت مجموعة إدارة الوصول، انقر فوق المستخدمون. بعد ذلك، انقر فوق إضافة مستخدم.

اكتب اسم مستخدم IAM الذي تقوم بإنشائه داخل مربع اسم المستخدم مثل s3Admin. في اختيار نوع الوصول*، ضع علامة على الوصول البرمجي. ثم، انقر على زر التالي: الأذونات.

بعد ذلك، انقر فوق ربط السياسات الحالية مباشرةً. ثم، ابحث عن اسم السياسة AmazonS3FullAccess وضع علامة عليه. عند الانتهاء، انقر فوق التالي: العلامات.

إنشاء العلامات اختياري في صفحة إضافة العلامات، ويمكنك تخطي هذا والنقر فوق زر التالي: مراجعة.

في صفحة المراجعة، ستجد ملخصًا للحساب الجديد الذي تم إنشاؤه. انقر على إنشاء مستخدم.

وأخيرًا، بمجرد إنشاء المستخدم، يجب عليك نسخ معرّف مفتاح الوصول وقيمة مفتاح الوصول السري وحفظهما للاستخدام لاحقًا. لاحظ أن هذه هي المرة الوحيدة التي يمكنك رؤية هذه القيم.

إعداد ملف تعريف AWS على جهاز الكمبيوتر
الآن بعد أن قمت بإنشاء مستخدم IAM بالوصول المناسب إلى Amazon S3، الخطوة التالية هي إعداد ملف تعريف AWS CLI على جهاز الكمبيوتر الخاص بك.
هذا القسم يفترض أنك قد قمت بتثبيت أداة AWS CLI الإصدار 2 كما هو مطلوب. لإنشاء الملف الشخصي، ستحتاج إلى المعلومات التالية:
- مفتاح الوصول الخاص بمستخدم IAM.
- المفتاح السري المرتبط بمستخدم IAM.
- اسم المنطقة الافتراضية المتوافق مع موقع دلو S3 الخاص بك في AWS. يمكنك التحقق من قائمة نقاط النهاية باستخدام هذا الرابط المرفق. في هذا المقال، يوجد دلو S3 لـ AWS في منطقة آسيا والمحيط الهادئ (سيدني)، ونقطة النهاية المقابلة هي ap-southeast-2.
- تنسيق الإخراج الافتراضي. استخدم JSON لهذا.
لإنشاء الملف الشخصي، افتح PowerShell واكتب الأمر أدناه واتبع التعليمات.
أدخل مفتاح الوصول، المفتاح السري، اسم المنطقة الافتراضي، واسم الإخراج الافتراضي. راجع العرض التوضيحي أدناه.

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

للتعرف على أوامر واجهة سطر الأوامر AWS الخاصة بـ Amazon S3، يمكنك زيارة صفحة مرجع أوامر واجهة سطر الأوامر AWS لـ S3.
إدارة الملفات في S3
مع واجهة سطر الأوامر AWS، يمكن القيام بعمليات إدارة الملفات النموذجية مثل تحميل الملفات إلى S3، وتنزيل الملفات من S3، وحذف الكائنات في S3، ونسخ كائنات S3 إلى موقع آخر في S3. كلها مسألة معرفة الأمر الصحيح والصيغة والمعلمات والخيارات.
في الأقسام التالية، يتكون البيئة المستخدمة من ما يلي.
- سلتان S3، هما atasync1 و atasync2. يوضح اللقطة الشاشة أدناه السلالات الموجودة في S3 في واجهة التحكم في Amazon S3.

- المجلد المحلي والملفات الموجودة تحت c:\sync.

تحميل الملفات الفردية إلى S3
عندما تقوم بتحميل الملفات إلى S3، يمكنك تحميل ملف واحد في كل مرة، أو عن طريق تحميل ملفات ومجلدات متعددة بشكل متكرر. اعتمادًا على متطلباتك، قد تختار واحدة على الأخرى التي تراها مناسبة.
لتحميل ملف إلى S3، ستحتاج إلى توفير حجمين (المصدر والوجهة) لأمر aws s3 cp
.
على سبيل المثال، لتحميل الملف c:\sync\logs\log1.xml إلى الجذر في السلة atasync1، يمكنك استخدام الأمر التالي.
ملاحظة: تتم إضافة بادئة S3:// دائمًا لأسماء سلالات S3 عند استخدام واجهة سطر الأوامر AWS
تشغيل الأمر أعلاه في PowerShell ، ولكن قم بتغيير المصدر والوجهة التي تتناسب مع بيئتك أولاً. يجب أن يكون الإخراج مشابهًا للعرض أدناه.

يظهر العرض أعلاه أن الملف بالاسم c:\sync\logs\log1.xml تم تحميله بدون أخطاء إلى وجهة S3 s3://atasync1/.
استخدم الأمر أدناه لعرض الكائنات في جذر دلو S3.
تشغيل الأمر أعلاه في PowerShell سيؤدي إلى نفس الإخراج ، كما هو موضح في العرض أدناه. كما يمكن رؤية في الإخراج أدناه أن الملف log1.xml موجود في جذر الموقع S3.

تحميل ملفات ومجلدات متعددة إلى S3 بشكل تكراري
عرض القسم السابق كيفية نسخ ملف واحد إلى موقع S3. ماذا لو كنت بحاجة إلى تحميل ملفات متعددة من مجلد ومجلدات فرعية؟ بالتأكيد لا تريد تشغيل نفس الأمر مرارًا وتكرارًا لأسماء ملفات مختلفة، صحيح؟
الأمر aws s3 cp
يحتوي على خيار لمعالجة الملفات والمجلدات بشكل تكراري ، وهذا هو الخيار --recursive
.
على سبيل المثال ، يحتوي الدليل c:\sync على 166 كائنًا (ملفات ومجلدات فرعية).

باستخدام الخيار --recursive
، ستتم تحميل جميع محتويات المجلد c:\sync إلى S3 مع الاحتفاظ بالهيكل الشجري. للاختبار ، استخدم الشيفرة المثالية أدناه ، ولكن تأكد من تغيير المصدر والوجهة بما يتناسب مع بيئتك.
ستلاحظ من الشيفرة أدناه أن المصدر هو c:\sync، والوجهة هي s3://atasync1/sync. يشير المفتاح /sync الذي يتبع اسم دلو S3 إلى AWS CLI لتحميل الملفات في المجلد /sync في S3. إذا كان المجلد /sync غير موجود في S3، سيتم إنشاؤه تلقائيًا.
سيؤدي الشيفرة أعلاه إلى الناتج كما هو موضح في العرض أدناه.

تحميل ملفات ومجلدات متعددة إلى S3 انتقائيًا
في بعض الحالات، ليس خيارًا جيدًا تحميل جميع أنواع الملفات. مثل عندما تحتاج فقط إلى تحميل الملفات ذات الامتدادات المعينة (على سبيل المثال، *.ps1). خياران آخران متاحان لأمر cp
هما --include
و --exclude
.
في حين استخدام الأمر في القسم السابق يتضمن جميع الملفات في التحميل التكراري، سيتضمن الأمر أدناه فقط الملفات التي تطابق *.ps1 ويستبعد كل ملف آخر من التحميل.
العرض أدناه يوضح كيفية عمل الشيفرة أعلاه عند تنفيذها.

مثال آخر هو إذا كنت ترغب في تضمين متغيرات متعددة لأمتدادات الملفات المختلفة، ستحتاج إلى تحديد الخيار --include
مرات عديدة.
سيتضمن الأمر في المثال أدناه فقط ملفات *.csv و *.png إلى أمر النسخ.
تشغيل الشيفرة أعلاه في PowerShell سيقدم لك نتيجة مماثلة، كما هو موضح أدناه.

تنزيل الكائنات من S3
بناءً على الأمثلة التي تعلمتها في هذا القسم، يمكنك أيضًا أداء عمليات النسخ بالعكس. وهذا يعني أنه يمكنك تنزيل الكائنات من موقع دلو S3 إلى الجهاز المحلي.
سيتطلب نسخ من S3 إلى المحلي منك تبديل مواقع المصدر والوجهة. حيث يكون المصدر موقع S3، والوجهة هي المسار المحلي، مثل الذي يُظهر أدناه.
لاحظ أن نفس الخيارات المستخدمة عند تحميل الملفات إلى S3 قابلة أيضًا عند تنزيل الكائنات من S3 إلى المحلي. على سبيل المثال، تنزيل جميع الكائنات باستخدام الأمر أدناه مع الخيار --recursive
.
نسخ الكائنات بين مواقع S3
بالإضافة إلى تحميل وتنزيل الملفات والمجلدات، باستخدام AWS CLI، يمكنك أيضًا نسخ أو نقل الملفات بين مواقع دلوين S3.
ستلاحظ الأمر أدناه باستخدام موقع S3 واحد كمصدر، وموقع S3 آخر كوجهة.
توضح العرض أدناه نسخ الملف المصدر إلى موقع S3 آخر باستخدام الأمر أعلاه.

مزامنة الملفات والمجلدات مع S3
لقد تعلمت كيفية تحميل وتنزيل ونسخ الملفات في S3 باستخدام أوامر AWS CLI حتى الآن. في هذا القسم، ستتعرف على أمر عملية ملف إضافي متاح في AWS CLI لـ S3، وهو أمر sync
. يقوم أمر sync
بمعالجة الملفات المحدثة والجديدة والمحذوفة فقط.
هناك بعض الحالات التي قد تحتاج فيها إلى الاحتفاظ بمحتويات سلة S3 محدّثة ومتزامنة مع دليل محلي على خادم. على سبيل المثال، قد يكون لديك متطلبات للحفاظ على سجلات المعاملات على خادم متزامنة مع S3 بفاصل زمني.
باستخدام الأمر أدناه، ستتم مزامنة ملفات تسجيل *.XML الموجودة في مجلد c:\sync على الخادم المحلي مع الموقع S3 في s3://atasync1.
تظهر الديمونستريشن أدناه أنه بعد تشغيل الأمر أعلاه في PowerShell، تم تحميل جميع ملفات *.XML إلى وجهة S3 s3://atasync1/.

مزامنة الملفات الجديدة والمحدّثة مع S3
في هذا المثال التالي، يُفترض أن محتويات ملف السجل Log1.xml قد تم تعديلها. يجب على أمر sync
اكتشاف هذا التعديل وتحميل التغييرات التي تمت على الملف المحلي إلى S3، كما هو موضح في الديمونستريشن أدناه.
الأمر المستخدم هو لا يزال نفسه كما في المثال السابق.

كما يمكنك رؤية من الناتج أعلاه، نظرًا لأن الملف Log1.xml تم تغييره محليًا فقط، كان أيضًا الملف الوحيد الذي تمت مزامنته إلى S3.
مزامنة الحذف مع S3
بشكل افتراضي، لا يعالج أمر sync
عمليات الحذف. لا يتم إزالة أي ملف تم حذفه من موقع المصدر في الموقع الوجهة. حسنًا، ليس إلا إذا استخدمت الخيار --delete
.
في هذا المثال التالي، تم حذف الملف المسمى Log5.xml من المصدر. سيتم إضافة الخيار --delete
إلى الأمر الذي يتم بموجبه مزامنة الملفات، كما هو موضح في الشيفرة أدناه.
عند تشغيل الأمر أعلاه في PowerShell، يجب أن يتم حذف الملف المسمى بـ \texttt{Log5.xml} أيضًا في موقع وجهة S3. يتم عرض النتيجة العينية أدناه.
\texttt{

الملخص
}Amazon S3 هو مورد ممتاز لتخزين الملفات في السحابة. باستخدام أداة AWS CLI، يتم توسيع طريقة استخدامك لـ Amazon S3 وفتح الفرصة لتأتي بعمليات الأتمتة.
\texttt{
}في هذا المقال، لقد تعلمت كيفية استخدام أداة AWS CLI لرفع، تنزيل، ومزامنة الملفات والمجلدات بين المواقع المحلية ودلاء S3. كما تعلمت أيضًا أنه يمكن نسخ أو نقل محتويات دلاء S3 إلى مواقع S3 أخرى.
\texttt{
}يمكن أن يكون هناك العديد من السيناريوهات لاستخدام أداة AWS CLI لأتمتة إدارة الملفات مع Amazon S3. يمكنك حتى محاولة دمجها مع نصوص PowerShell و\texttt{بناء أدوات خاصة بك} أو \texttt{وحدات} يمكن إعادة استخدامها. من المتروك لك البحث عن تلك الفرص وإظهار مهاراتك.
\texttt{
}قراءة إضافية
\texttt{