Aracılığıyla paylaş


AzCopy kullanarak Google Cloud Storage'dan Azure Depolama'ya veri kopyalama

AzCopy, blobları veya dosyaları depolama hesabına veya depolama hesabından kopyalamak için kullanabileceğiniz bir komut satırı yardımcı programıdır. Bu makale AzCopy kullanarak nesneleri, dizinleri ve demetleri Google Cloud Storage'dan Azure Blob Depolama'ya 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 Storage 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.

Uyarı

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 Storage ile yetkilendirme

Google Cloud Storage ile yetkilendirmek için bir hizmet hesabı anahtarı kullanın. 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 Command
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 Blok Yerleştir API'sini kullandığı için veriler doğrudan Google Cloud Storage ile depolama sunucuları arasında kopyalanır. Bu kopyalama işlemleri bilgisayarınızın ağ bant genişliğini kullanmaz.

Tavsiye

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 işareti 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 Storage'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özdizimi

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özdizimi

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

Uyarı

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özdizimi

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özdizimi

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_PROJECT öğesini Google Cloud proje kimliğinize ayarlayın.

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

Sözdizimi

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_PROJECT'yi Google Cloud projenizin ID'sine 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özdizimi

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

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

Google Cloud Storage'da, demet adları için Azure blob kapsayıcılarına kıyasla farklı adlandırma kuralları kümesi vardır. 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 işler: nokta içeren demetler, ardışık kısa çizgi içeren demetler ve alt çizgi içeren demetler. Google Cloud Storage kova adları nokta ve ardışık kısa çizgi içerebilir, ancak Azure'daki bir kapsayıcının adı bunları içeremez. AzCopy, noktaları kısa çizgilerle ve ardışık kısa çizgileri, ardışık kısa çizgi sayısını temsil eden bir sayıyla değiştirir (örneğin, my----bucket adlı bir kova my-4-bucket olur). Demet adında bir alt çizgi ()_ varsa, AzCopy alt çizgiyi kısa çizgiyle değiştirir. Örneğin, my_bucket adlı bir kova my-bucket olur.

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

Google Cloud Storage' ın nesne adları için Azure bloblarına kıyasla farklı adlandırma kuralları kümesi vardır. Burada bunları okuyabilirsiniz.

Azure Depolama nesne adlarının (veya sanal dizin yolundaki herhangi bir kesimin) sondaki noktalarla (örneğin my-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 Storage ve Azure, nesne anahtarlarının adlarında farklı karakter kümelerine izin verir. Google Cloud Storage'daki meta veriler hakkında buradan bilgi edinebilirsiniz. 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 uyumsuz anahtar adları içerdiği dosyaları nasıl işlemek istediğinizi belirten isteğe bağlı s2s-handle-invalid-metadata bayrağı için bir değer sağlayabilirsiniz. Aşağıdaki tabloda her bayrak değeri açıklanmaktadır.

Bayrak değeri Açıklama
Geçersizse Hariç Tut (Varsayılan seçenek) Meta veriler aktarılan nesneye dahil değildir. AzCopy bir uyarıyı 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 işlem sayısına dahil eder.
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 AzCopy nesne anahtarlarını nasıl yeniden adlandırır bölümüne bakın. AzCopy anahtarı yeniden adlandıramıyorsa nesne kopyalanmıyor demektir.

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.

Kaynak ve hedef türlerini belirtme

AzCopy, boru senaryolarında veya öykünücülerde --from-to olduğu gibi otomatik algılama başarısız olabileceğinde kaynak ve hedef kaynak türlerini açıkça tanımlamak için parametresini kullanır. Bu, AzCopy'nin aktarım bağlamını anlamasına ve uygun şekilde iyileştirmesine yardımcı olur. Bu parametreyi GCPBlob, komutun Google Cloud Storage'dan Azure Blob Depolama'ya kopyalandığını açıkça belirtmek için olarak ayarlayabilirsiniz.

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: