نسخ البيانات من Amazon S 3 إلى Azure Storage باستخدام AzCopy
AzCopy هو أداة سطر الأوامر التي يمكنك استخدامها لنسخ كائنات ثنائية كبيرة الحجم أو ملفات إلى أو من حساب تخزين. تساعدك هذه المقالة على نسخ العناصر والدلائل والحاويات من Amazon Web Services (AWS) S3 إلى Azure Blob Storage باستخدام AzCopy.
اختر كيفية تقديم بيانات اعتماد التصريح
للترخيص باستخدام Azure Storage، استخدم Azure Active Directory (AD) أو رمز الوصول المشترك المميز (SAS).
للتصريح باستخدام AWS S 3، استخدم مفتاح الوصول إلى AWS ومفتاح الوصول السري.
التصريح بواسطة Azure Storage
راجع مقالة ابدأ بمقالة AzCopy لتنزيل AzCopy، واختر كيفية تقديم بيانات اعتماد التصريح لخدمة التخزين.
ملاحظة
تفترض الأمثلة الواردة في هذه المقالة أنك قد صرحت عن هويتك باستخدام الأمر AzCopy login. ثم يستخدم AzCopy حساب Azure AD خاصتك للسماح بالوصول إلى البيانات في تخزين كائن ثنائي كبير الحجم.
إذا كنت تفضل استخدام رمز SAS للسماح بالوصول إلى بيانات كائن ثنائي كبير الحجم، فإنه يمكنك إلحاق هذا الرمز بعنوان URL المورد في كل أمر AzCopy.
على سبيل المثال: https://mystorageaccount.blob.core.windows.net/mycontainer?<SAS-token>.
التصريح باستخدام AWS S 3
اجمع مفتاح الوصول إلى AWS ومفتاح الوصول السري، ثم عيِّن هذه المتغيرات البيئية:
| نظام التشغيل | الأمر |
|---|---|
| Windows | set AWS_ACCESS_KEY_ID=<access-key>set AWS_SECRET_ACCESS_KEY=<secret-access-key> |
| Linux | export AWS_ACCESS_KEY_ID=<access-key>export AWS_SECRET_ACCESS_KEY=<secret-access-key> |
| macOS | export AWS_ACCESS_KEY_ID=<access-key>export AWS_SECRET_ACCESS_KEY=<secret-access-key> |
نسخ الكائنات والدلائل والحاويات
يستخدم AzCopy كتلة مكوِّنة من عنوان URL API، لذلك تُنسخ البيانات مباشرة بين AWS S 3 وخوادم التخزين. لا تستخدم عمليات النسخ هذه النطاق الترددي للشبكة الخاص بالكمبيوتر خاصتك.
تلميح
تشمل الأمثلة الواردة في هذا القسم وسيطات المسار مع اقتباسات مفردة (" "). استخدم علامات مفردة في كافة هياكل الأوامر باستثناء Windows Command Shell (cmd.exe). إذا كنت تستخدم Windows Command Shell (cmd.exe)، فقم بإرفاق وسيطات المسار باقتباسات مزدوجة (" ") بدلاً من اقتباسات مفردة (" ").
تعمل هذه الأمثلة أيضًا مع الحسابات التي لها مساحة أسماء هرمية. يمكنك الوصول متعدد البروتوكولات على Data Lake Storage من استخدام نفس بناء جملة عنوان URL (blob.core.windows.net) على هذه الحسابات.
نسخ كائن
استخدم بنية عنوان URL نفسها (blob.core.windows.net) للحسابات التي تحتوي على مساحة أسماء هرمية.
بناء الجملة
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<object-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>'
مثال
azcopy copy 'https://s3.amazonaws.com/mybucket/myobject' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myblob'
ملاحظة
تستخدم الأمثلة الواردة في هذه المقالة عناوين URL لنمط المسار لمجموعات AWS S 3 (على سبيل المثال: http://s3.amazonaws.com/<bucket-name>).
يمكنك أيضًا استخدام عناوين URL الظاهرية المستضافة (على سبيل المثال: http://bucket.s3.amazonaws.com).
لمعرفة المزيد عن Hosting افتراضي للحاويات، راجع الاستضافة الافتراضية للحاويات.
نسخ دليل
استخدم بنية عنوان URL نفسها (blob.core.windows.net) للحسابات التي تحتوي على مساحة أسماء هرمية.
بناء الجملة
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<directory-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
مثال
azcopy copy 'https://s3.amazonaws.com/mybucket/mydirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
ملاحظة
يلحق هذا المثال علامة --recursive لنسخ الملفات في جميع الأدلة الفرعية.
نسخ محتويات دليل
يمكنك نسخ محتويات الدليل دون نسخ دليل المحتوي نفسه باستخدام رمز البدل (*).
بناء الجملة
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<directory-name>/*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
مثال
azcopy copy 'https://s3.amazonaws.com/mybucket/mydirectory/*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
نسخ حاوية
استخدم بنية عنوان URL نفسها (blob.core.windows.net) للحسابات التي تحتوي على مساحة أسماء هرمية.
بناء الجملة
azcopy copy 'https://s3.amazonaws.com/<bucket-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive=true
مثال
azcopy copy 'https://s3.amazonaws.com/mybucket' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive=true
نسخ جميع الحاويات في جميع المناطق
استخدم بنية عنوان URL نفسها (blob.core.windows.net) للحسابات التي تحتوي على مساحة أسماء هرمية.
بناء الجملة
azcopy copy 'https://s3.amazonaws.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
مثال
azcopy copy 'https://s3.amazonaws.com' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
انسخ جميع الحاويات في منطقة S 3 محددة
استخدم بنية عنوان URL نفسها (blob.core.windows.net) للحسابات التي تحتوي على مساحة أسماء هرمية.
بناء الجملة
azcopy copy 'https://s3-<region-name>.amazonaws.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
مثال
azcopy copy 'https://s3-rds.eu-north-1.amazonaws.com' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
التعامل مع الاختلافات في قواعد تسمية العناصر
يحتوي AWS S 3 على مجموعة مختلفة من اتفاقيات التسمية لأسماء الحاويات مقارنةً بحاويات Azure blob. يمكنك القراءة عنهم هنا. إذا اخترت نسخ مجموعة من الحاويات إلى حساب تخزين Azure، فقد تفشل عملية النسخ بسبب الاختلافات في التسمية.
تتعامل AzCopy مع اثنتين من أكثر المشكلات شيوعًا التي يمكن أن تنشأ؛ الحاويات التي تحتوي على فترات وحاويات تحتوي على الوصلات المتتالية. يمكن أن تحتوي أسماء حاوية AWS S 3 على فترات ووصلات متتالية، ولكن لا يمكن لحاوية في Azure. تستبدل AzCopy الفترات بالوصلات والوصلات المتتالية برقم يمثل عدد الوصلات المتتالية (على سبيل المثال: تصبح الحاوية my----bucket my-4-bucket.
أيضًا، عند نسخ AzCopy على الملفات، فإنه يتحقق من وجود اصطدامات في التسمية ويحاول حلها. على سبيل المثال، إذا كانت هناك حاويات تحمل الاسم bucket-name وbucket.name، تقوم AzCopy بحل حاوية باسم bucket.name أولاً إلى bucket-name ثم إلى bucket-name-2.
التعامل مع الاختلافات في بيانات تعريف العنصر
يسمح AWS S 3 وAzure بمجموعات مختلفة من الأحرف في أسماء مفاتيح العناصر. يمكنك القراءة عن الشخصيات التي يستخدمها AWS S 3 هنا. على جانب Azure، تلتزم مفاتيح عنصر كائن ثنائي كبير الحجم بقواعد التسمية لمعرفات C#.
كجزء من أمرcopy AzCopy، يمكنك تقديم قيمة للعلامة s2s-handle-invalid-metadata الاختيارية التي تحدد كيف ترغب في التعامل مع الملفات حيث تحتوي بيانات التعريف للملف على أسماء مفاتيح غير متوافقة. يُبين الجدول التالي قيمة كل علامة.
| قيمة العلامة | الوصف |
|---|---|
| تُستبعد إذا كانت غير صالحة | (الخيار الافتراضي) لا تُضَمن بيانات التعريف في العنصر المنقول. يسجل AzCopy تحذيرًا. |
| فاشل إذا لم يكن صالحًا | العناصر غير منسوخة. يُسجل AzCopy خطأ ويتضمن هذا الخطأ في العد الخاطئ الذي يظهر في ملخص النقل. |
| إعادة تسمية إذا كان غير صالحًا | يحل AzCopy مفتاح بيانات التعريف الغير صالح، وينسخ العنصر إلى Azure باستخدام زوج قيمة مفتاح بيانات التعريف المحلولة. لمعرفة الخطوات التي تتخذها AzCopy بالضبط لإعادة تسمية مفاتيح العناصر، راجع قسم كيفية إعادة تسمية AzCopy لمفاتيح العناصر أدناه. إذا تعذر على AzCopy إعادة تسمية المفتاح، فلن يُنسخ العنصر. |
كيف يقوم AzCopy بإعادة تسمية مفاتيح العناصر
يُنفذ AzCopy هذه الخطوات:
يستبدل الأحرف غير الصالحة بـ '_'.
يضيف السلسلة
rename_ إلى بداية مفتاح صالح جديد.سيتم استخدام هذا المفتاح لحفظ بيانات التعريف الأصلية القيمة.
يضيف السلسلة
rename_key_ إلى بداية مفتاح صالح جديد. سيُستخدم هذا المفتاح لحفظ بيانات التعريف الأصلية مفتاح غير صالح. يمكنك استخدام هذا المفتاح لمحاولة استرداد بيانات التعريف في جانب Azure نظرًا لأن مفتاح بيانات التعريف محفوظ كقيمة على خدمة تخزين كائن ثنائي كبير الحجم.
الخطوات التالية
اعثر على المزيد من الأمثلة في هذه المقالات:
- أمثلة: تحميل
- أمثلة: تنزيل
- أمثلة: نسخ بين الحسابات
- أمثلة: مزامنة
- أمثلة: مخزن سحابة جوجل
- أمثلة: ملفات Azure
- البرنامج التعليمي: ترحيل البيانات الموجودة محليًا إلى التخزين السحابي باستخدام AzCopy
راجع هذه المقالات لتكوين الإعدادات وتحسين الأداء وحل المشكلات: