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:
Geçersiz karakterleri '_' ile değiştirir.
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.
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:
- Örnekler: Karşıya Yükleme
- Örnekler: İndirme
- Örnekler: Hesaplar arasında kopyalama
- Örnekler: Eşitle
- Örnekler: Amazon S3 demetleri
- Örnekler: Azure Dosyalar
- Öğretici: AzCopy kullanarak şirket içi verileri bulut depolamaya geçirme
Ayarları yapılandırmak, performansı iyileştirmek ve sorunları gidermek için şu makalelere bakın: