نسخ البيانات من 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 بتنفيذ الخطوات التالية:
يستبدل الأحرف غير الصالحة بـ «_».
إضافة السلسلة
rename_ إلى بداية مفتاح صالح جديد.سيتم استخدام هذا المفتاح لحفظ قيمة بيانات التعريف الأصلية.
إضافة السلسلة
rename_key_ إلى بداية مفتاح صالح جديد. سيتم استخدام هذا المفتاح لحفظ مفتاح بيانات التعريف الأصلي غير الصالح. يمكنك استخدام هذا المفتاح لمحاولة استرداد بيانات التعريف في جانب Azure نظرا لأنه يتم الاحتفاظ بمفتاح بيانات التعريف كقيمة على خدمة تخزين كائن ثنائي كبير الحجم.
الخطوات التالية
يمكنك العثور على مزيد من الأمثلة في هذه المقالات:
- أمثلة: تحميل
- أمثلة: تنزيل
- أمثلة: نسخ بين الحسابات
- أمثلة: مزامنة
- أمثلة: مستودعات Amazon S3
- أمثلة: ملفات Azure
- البرنامج التعليمي: ترحيل البيانات المحلية إلى التخزين السحابي باستخدام AzCopy
راجع هذه المقالات لتكوين الإعدادات وتحسين الأداء واستكشاف المشكلات وإصلاحها: