نسخ البيانات من Google Cloud Storage إلى Azure Storage باستخدام AzCopy (إصدار أولي)

AzCopy هو أداة سطر الأوامر التي يمكنك استخدامها لنسخ كائنات ثنائية كبيرة الحجم أو ملفات إلى أو من حساب تخزين. تساعدك هذه المقالة على نسخ العناصر والدلائل والمستودعات من Google Cloud Storage إلى Azure Blob Storage باستخدام AzCopy.

هام

نسخ البيانات من Google Cloud Storage إلى Azure Storage حاليًا في المعاينة العامة. يتم توفير إصدار المعاينة هذا بدون اتفاقية مستوى الخدمة، ولا يوصى به لأحمال العمل الخاصة بالإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة لمزيد من المعلومات، راجع ⁧⁩شروط الاستخدام التكميلية لمعاينات Microsoft Azure⁧⁩.

اختر الطريقة التي ستقدم بها بيانات اعتماد التخويل

  • للتخويل باستخدام Azure Storage، استخدم Azure Active Directory (AD) أو رمزًا مميزًا لتوقيع الوصول المشترك (SAS).

  • للتفويض باستخدام Google Cloud Storage، استخدم مفتاح حساب خدمة.

التخويل باستخدام Azure Storage

راجع مقالة ⁧⁩بدء استخدام AzCopy⁧⁩ لتنزيل AzCopy والتعرف على الطرق التي يمكنك من خلالها توفير بيانات اعتماد التخويل لخدمة التخزين.

ملاحظة

تفترض الأمثلة الواردة في هذه المقالة أنك قمت بتوفير بيانات اعتماد التخويل باستخدام Azure Active Directory (Azure AD).

إذا كنت تفضل استخدام رمز SAS المميز لتخويل الوصول إلى بيانات كائن ثنائي كبير الحجم، فإنه يمكنك إلحاق هذا الرمز المميز بعنوان URL للمورد في كل أمر AzCopy. على سبيل المثال: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.

التخويل باستخدام Google Cloud Storage

للتخويل باستخدام Google Cloud Storage، ستستخدم مفتاح حساب خدمة. للحصول على معلومات حول كيفية إنشاء مفتاح حساب خدمة، راجع ⁧⁩إنشاء مفاتيح حساب الخدمة وإدارتها⁧⁩.

بعد الحصول على مفتاح خدمة، قم بتعيين ⁧GOOGLE_APPLICATION_CREDENTIALS⁩ متغير البيئة إلى المسار المطلق إلى ملف مفتاح حساب الخدمة:

نظام التشغيل الأمر
Windows set GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key>
Linux export GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key>
macOS export GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key>

نسخ العناصر والدلائل والمستودعات

يستخدم AzCopy واجهة برمجة تطبيقات ⁧⁩وضع الحظر من عنوان URL⁧⁩، لذلك يتم نسخ البيانات مباشرة بين Google Cloud Storage وخوادم التخزين. لا تستخدم عمليات النسخ هذه النطاق الترددي للشبكة لجهاز الكمبيوتر الخاص بك.

تلميح

تتضمن الأمثلة الواردة في هذا القسم وسيطات المسار مع علامات اقتباس مفردة («»). استخدم علامات اقتباس مفردة في كافة أغلفة الأوامر باستثناء 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://storage.cloud.google.com/<bucket-name>/<object-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>'

مثال

azcopy copy 'https://storage.cloud.google.com/mybucket/myobject' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myblob'

نسخ دليل

استخدم بناء جملة عنوان URL نفسه (⁧blob.core.windows.net⁩) للحسابات التي تحتوي على مساحة أسماء هرمية.

بناء الجملة

azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<directory-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true

مثال

azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true

ملاحظة

يلحق هذا المثال العلامة ⁧--recursive⁩ لنسخ الملفات في كافة الدلائل الفرعية.

نسخ محتويات دليل

يمكنك نسخ محتويات دليل دون نسخ الدليل المحتوي نفسه باستخدام رمز حرف البدل (*).

بناء الجملة

azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<directory-name>/*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true

مثال

azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory/*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true

نسخ مستودع Cloud Storage

استخدم بناء جملة عنوان URL نفسه (⁧blob.core.windows.net⁩) للحسابات التي تحتوي على مساحة أسماء هرمية.

بناء الجملة

azcopy copy 'https://storage.cloud.google.com/<bucket-name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true

مثال

azcopy copy 'https://storage.cloud.google.com/mybucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true

نسخ جميع المستودعات في مشروع Google Cloud

أولاً، قم بتعيين ⁧GOOGLE_CLOUD_PROJECT⁩ معرف المشروع لمشروع Google Cloud.

استخدم بناء جملة عنوان URL نفسه (⁧blob.core.windows.net⁩) للحسابات التي تحتوي على مساحة أسماء هرمية.

بناء الجملة

azcopy copy 'https://storage.cloud.google.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true

مثال

azcopy copy 'https://storage.cloud.google.com/' 'https://mystorageaccount.blob.core.windows.net' --recursive=true

نسخ مجموعة فرعية من المستودعات في مشروع Google Cloud

أولاً، قم بتعيين ⁧GOOGLE_CLOUD_PROJECT⁩ معرف المشروع لمشروع Google Cloud.

انسخ مجموعة فرعية من الحاويات باستخدام رمز حرف بدل (*) في اسم المستودع. استخدم بناء جملة عنوان URL نفسه (⁧blob.core.windows.net⁩) للحسابات التي تحتوي على مساحة أسماء هرمية.

بناء الجملة

azcopy copy 'https://storage.cloud.google.com/<bucket*name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true

مثال

azcopy copy 'https://storage.cloud.google.com/my*bucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true

التعامل مع الاختلافات في قواعد تسمية المستودع

يحتوي Google Cloud Storage على مجموعة مختلفة من اصطلاحات التسمية لأسماء الحاويات مقارنة بحاويات كائن Azure الثنائي كبير الحجم. يمكنك القراءة عنهم ⁧⁩هنا⁧⁩. إذا اخترت نسخ مجموعة من الحاويات إلى حساب تخزين Azure، فقد تفشل عملية النسخ بسبب اختلافات التسمية.

يعالج AzCopy ثلاثًا من المشكلات الأكثر شيوعًا التي يمكن أن تنشأ. المستودعات التي تحتوي على نقاط، والمستودعات التي تحتوي على واصلات متتالية، والمستودعات التي تحتوي على تسطير سفلي. يمكن أن تحتوي أسماء مستودعات Google Cloud Storage على نقاط وواصلات متتالية، ولكن لا يمكن لحاوية في Azure ذلك. يستبدل AzCopy النقاط بالواصلات والواصلات المتتالية برقم يمثل عدد الواصلات المتتالية (على سبيل المثال: يصبح المستودع المسمي⁧my----bucket⁩ ⁧my-4-bucket⁩. إذا كان اسم الحاوية يحتوي على تسطير سفلي (⁧_⁩)، فإن AzCopy يستبدل الشرطة السفلية بواصلة. على سبيل المثال، يصبح المستودع المسمي ⁧my_bucket⁩ ⁧my-bucket⁩.

معالجة الاختلافات في قواعد تسمية الكائنات

يحتوي Google Cloud Storage على مجموعة مختلفة من اصطلاحات التسمية لأسماء الكائنات مقارنة بنقط Azure. يمكنك القراءة عنهم ⁧⁩هنا⁧⁩.

لا يسمح Azure Storage بأسماء الكائنات (أو أي مقطع في مسار الدليل الظاهري) بإنهاء النقاط الزائدة (على سبيل المثال ⁧my-bucket...⁩). يتم قطع النقاط الزائدة عند تنفيذ عملية النسخ.

معالجة الاختلافات في بيانات تعريف العنصر

يسمح كل من Google Cloud Storage وAzure بمجموعات مختلفة من الأحرف في أسماء مفاتيح العناصر. يمكنك الاطلاع على بيانات التعريف في Google Cloud Storage ⁧⁩هنا⁧⁩. على جانب Azure، تلتزم مفاتيح عناصر كائن ثنائي كبير الحجم بقواعد التسمية ⁧⁩لمعرفات C#⁧⁩.

كجزء من أمر AzCopy ⁧copy⁩، يمكنك توفير قيمة للعلامة الاختيارية ⁧s2s-handle-invalid-metadata⁩ التي تحدد الطريقة التي ترغب في التعامل بها مع الملفات حيث تحتوي بيانات التعريف الخاصة بالملف على أسماء مفاتيح غير متوافقة. يصف الجدول التالي كل قيمة علامة.

القيمة الخاصة بالعلامة الوصف
⁩ExcludeIfInvalid⁧ (خيار افتراضي) لا يتم تضمين بيانات التعريف في العنصر المنقول. AzCopy يسجل تحذيرًا.
⁩FailIfInvalid⁧ لا يتم نسخ العناصر. يسجل AzCopy خطأ ويتضمن هذا الخطأ في العدد الفاشل الذي يظهر في ملخص النقل.
⁩RenameIfInvalid⁧ يعمل AzCopy على حل مفتاح بيانات التعريف غير الصالح، وينسخ الكائن إلى Azure باستخدام زوج قيمة مفتاح بيانات التعريف الذي تم حله. لمعرفة الخطوات التي يتخذها AzCopy بالضبط لإعادة تسمية مفاتيح العناصر، راجع قسم ⁧⁩كيفية قيام AzCopy بإعادة تسمية مفاتيح العناصر⁧⁩ أدناه. إذا تعذر على AzCopy إعادة تسمية المفتاح، فلن يتم نسخ العناصر.

كيف يقوم AzCopy بإعادة تسمية مفاتيح العناصر

يقوم AzCopy بتنفيذ الخطوات التالية:

  1. يستبدل الأحرف غير الصالحة بـ «_».

  2. إضافة السلسلة ⁧rename_⁩ إلى بداية مفتاح صالح جديد.

    سيتم استخدام هذا المفتاح لحفظ ⁧⁩قيمة⁧⁩ بيانات التعريف الأصلية.

  3. إضافة السلسلة ⁧rename_key_⁩ إلى بداية مفتاح صالح جديد. سيتم استخدام هذا المفتاح لحفظ ⁧⁩مفتاح⁧⁩ بيانات التعريف الأصلي غير الصالح. يمكنك استخدام هذا المفتاح لمحاولة استرداد بيانات التعريف في جانب Azure نظرا لأنه يتم الاحتفاظ بمفتاح بيانات التعريف كقيمة على خدمة تخزين كائن ثنائي كبير الحجم.

الخطوات التالية

يمكنك العثور على مزيد من الأمثلة في هذه المقالات:

راجع هذه المقالات لتكوين الإعدادات وتحسين الأداء واستكشاف المشكلات وإصلاحها: