AzCopy kullanarak Google Cloud Depolama'dan Azure Depolama'a veri kopyalama

AzCopy, bir depolama hesabına iki yönlü blob veya dosya kopyalama işlemi gerçekleştirmenizi sağlayan bir komut satırı yardımcı programıdır. Bu makale, AzCopy kullanarak Google Cloud Depolama'deki nesneleri, dizinleri ve demetleri Azure Blob Depolama kopyalamanıza yardımcı olur.

Yetkilendirme kimlik bilgilerini nasıl sağlayacağınızı seçin

  • Azure Depolama ile yetkilendirmek için Microsoft Entra Id veya Paylaşılan Erişim İmzası (SAS) belirtecini kullanın.

  • Google Cloud Depolama ile yetkilendirmek için bir hizmet hesabı anahtarı kullanın.

Azure Depolama ile yetkilendirme

AzCopy'yi indirmek için AzCopy'yi kullanmaya başlama makalesine bakın ve depolama hizmetine yetkilendirme kimlik bilgilerini nasıl sağlayabileceğinizi öğrenin.

Dekont

Bu makaledeki örneklerde, Microsoft Entra Id kullanarak yetkilendirme kimlik bilgilerini sağladığınız varsayılır.

Blob verilerine erişim yetkisi vermek için SAS belirteci kullanmayı tercih ediyorsanız, bu belirteci her AzCopy komutundaki kaynak URL'sine ekleyebilirsiniz. Örneğin: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.

Google Cloud Depolama ile yetkilendirme

Google Cloud Depolama ile yetkilendirmek için bir hizmet hesabı anahtarı kullanacaksınız. Hizmet hesabı anahtarı oluşturma hakkında bilgi için bkz . Hizmet hesabı anahtarlarını oluşturma ve yönetme.

Bir hizmet anahtarı aldıktan sonra ortam değişkenini GOOGLE_APPLICATION_CREDENTIALS hizmet hesabı anahtar dosyasının mutlak yoluna ayarlayın:

İşletim sistemi Komut
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>

Nesneleri, dizinleri ve demetleri kopyalama

AzCopy, Url'den Yerleştir API'sini kullandığından, veriler doğrudan Google Cloud Depolama ile depolama sunucuları arasında kopyalanır. Bu kopyalama işlemleri bilgisayarınızın ağ bant genişliğini kullanmaz.

Bahşiş

Bu bölümdeki örnekler yol bağımsız değişkenlerini tek tırnak ('') içine almaktadır. Windows Komut Kabuğu (cmd.exe) dışında tüm komut kabuklarında tek tırnak kullanın. Windows Komut Kabuğu (cmd.exe) kullanıyorsanız, yol bağımsız değişkenlerini tek tırnak ('') yerine çift tırnak ("") içine alın.

Bu örnekler hiyerarşik ad alanına sahip hesaplarla da çalışır. Data Lake Depolama'da çoklu protokol erişimi, bu hesaplarda aynı URL söz dizimini (blob.core.windows.net) kullanmanıza olanak tanır.

Nesne kopyalama

Hiyerarşik ad alanına sahip hesaplar için aynı URL söz dizimini (blob.core.windows.net) kullanın.

Söz dizimi

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

Örnek

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

Bir dizini kopyalama

Hiyerarşik ad alanına sahip hesaplar için aynı URL söz dizimini (blob.core.windows.net) kullanın.

Söz dizimi

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

Örnek

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

Dekont

Bu örnek, tüm alt dizinlerdeki --recursive dosyaları kopyalamak için bayrağını ekler.

Dizinin içeriğini kopyalama

Bir dizinin içeriğini, içeren dizinin kendisini kopyalamadan joker karakter simgesini (*) kullanarak kopyalayabilirsiniz.

Söz dizimi

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

Örnek

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

Bulut Depolama demeti kopyalama

Hiyerarşik ad alanına sahip hesaplar için aynı URL söz dizimini (blob.core.windows.net) kullanın.

Söz dizimi

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

Örnek

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

Google Cloud projesindeki tüm demetleri kopyalama

İlk olarak, Google Cloud projesinin GOOGLE_CLOUD_PROJECT proje kimliğini ayarlayın.

Hiyerarşik ad alanına sahip hesaplar için aynı URL söz dizimini (blob.core.windows.net) kullanın.

Söz dizimi

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

Örnek

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

Google Cloud projesinde demetlerin bir alt kümesini kopyalama

İlk olarak, Google Cloud projesinin GOOGLE_CLOUD_PROJECT proje kimliğini ayarlayın.

Demet adında joker karakter simgesi (*) kullanarak demetlerin bir alt kümesini kopyalayın. Hiyerarşik ad alanına sahip hesaplar için aynı URL söz dizimini (blob.core.windows.net) kullanın.

Söz dizimi

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

Örnek

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

Demet adlandırma kurallarındaki farkları işleme

Google Cloud Depolama, Demet adları için Azure blob kapsayıcılarına kıyasla farklı adlandırma kuralları kümesine sahiptir. Burada bunları okuyabilirsiniz. Bir grup demeti bir Azure depolama hesabına kopyalamayı seçerseniz, adlandırma farklılıkları nedeniyle kopyalama işlemi başarısız olabilir.

AzCopy ortaya çıkabilecek en yaygın üç sorunu ele alır; dönemler içeren demetler, ardışık kısa çizgi içeren demetler ve alt çizgi içeren demetler. Google Cloud Depolama demet adları nokta ve ardışık kısa çizgi içerebilir, ancak Azure'daki bir kapsayıcı içeremez. AzCopy, dönemleri kısa çizgilerle ve ardışık kısa çizgilerle, ardışık kısa çizgi sayısını temsil eden bir sayıyla değiştirir (Örneğin: adlı my----bucket bir demet olur my-4-bucket. Demet adında bir alt çizgi ()_ varsa, AzCopy alt çizgiyi kısa çizgiyle değiştirir. Örneğin, adlı my_bucket bir demet olur my-bucket.

Nesne adlandırma kurallarındaki farkları işleme

Google Cloud Depolama, Azure bloblarına kıyasla nesne adları için farklı adlandırma kuralları kümesine sahiptir. Burada bunları okuyabilirsiniz.

Azure Depolama nesne adlarının (veya sanal dizin yolundaki herhangi bir kesimin) sondaki noktalarla (örneğinmy-bucket...) bitmesini sağlamaz. Kopyalama işlemi gerçekleştirildiğinde sondaki noktalar kırpılır.

Nesne meta verilerindeki farkları işleme

Google Cloud Depolama ve Azure, nesne anahtarlarının adlarında farklı karakter kümelerine izin verir. Google Cloud Depolama'da meta veriler hakkında bilgi edinmek için buraya bakın. Azure tarafında blob nesne anahtarları C# tanımlayıcıları için adlandırma kurallarına uyar.

AzCopy copy komutunun bir parçası olarak, dosyanın meta verilerinin s2s-handle-invalid-metadata uyumsuz anahtar adları içerdiği dosyaları nasıl işlemek istediğinizi belirten isteğe bağlı bayrağı için bir değer sağlayabilirsiniz. Aşağıdaki tabloda her bayrak değeri açıklanmaktadır.

Bayrak değeri Tanım
ExcludeIfInvalid (Varsayılan seçenek) Meta veriler aktarılan nesneye dahil değildir. AzCopy bir uyarı günlüğe kaydeder.
FailIfInvalid Nesneler kopyalanmamıştır. AzCopy bir hatayı günlüğe kaydeder ve bu hatayı aktarım özetinde görünen başarısız sayıya ekler.
RenameIfInvalid AzCopy geçersiz meta veri anahtarını çözümler ve çözümlenen meta veri anahtarı değer çiftini kullanarak nesneyi Azure'a kopyalar. AzCopy'nin nesne anahtarlarını yeniden adlandırmak için tam olarak hangi adımları uyguladığını öğrenmek için aşağıdaki AzCopy nesne anahtarlarını nasıl yeniden adlandırır bölümüne bakın. AzCopy anahtarı yeniden adlandıramazsa nesne kopyalanamaz.

AzCopy nesne anahtarlarını nasıl yeniden adlandırır?

AzCopy şu adımları gerçekleştirir:

  1. Geçersiz karakterleri '_' ile değiştirir.

  2. Dizeyi rename_ yeni geçerli bir anahtarın başına ekler.

    Bu anahtar, özgün meta veri değerini kaydetmek için kullanılır.

  3. Dizeyi rename_key_ yeni geçerli bir anahtarın başına ekler. Bu anahtar, özgün meta veri geçersiz anahtarını kaydetmek için kullanılır. Meta veri anahtarı Blob depolama hizmetinde bir değer olarak korunduğu için azure tarafında meta verileri kurtarmayı denemek için bu anahtarı kullanabilirsiniz.

Sonraki adımlar

Bu makalelerde daha fazla örnek bulabilirsiniz:

Ayarları yapılandırmak, performansı iyileştirmek ve sorunları gidermek için şu makalelere bakın: