AzCopy kullanarak Amazon S3'ten 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 Amazon Web Services (AWS) S3'teki nesneleri, dizinleri ve demetleri Azure Blob Depolama kopyalamanıza yardımcı olur.
Not
AzCopy, AWS tarafından tanımlanan standart sanal barındırılan stil veya yol stili URL'leri destekler. Örneğin: https://bucket.s3.amazonaws.com
veya https://s3.amazonaws.com/bucket
.
Yetkilendirme kimlik bilgilerini nasıl sağlayacağınızı seçin
Azure Depolama yetkilendirmek için Microsoft Entra Id veya Paylaşılan Erişim İmzası (SAS) belirtecini kullanın.
AWS S3 ile yetkilendirmek için AWS erişim anahtarı ve gizli erişim 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ğlayacağınızı seçin.
Not
Bu makaledeki örneklerde, komutunu kullanarak AzCopy login
kimliğinizin kimliğini doğruladığınız varsayılır. AzCopy daha sonra Blob depolamadaki verilere erişimi yetkilendirmek için Microsoft Entra hesabınızı kullanı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://mystorageaccount.blob.core.windows.net/mycontainer?<SAS-token>
.
AWS S3 ile yetkilendirme
AWS erişim anahtarınızı ve gizli dizi erişim anahtarınızı toplayın ve ardından şu ortam değişkenlerini ayarlayın:
İşletim sistemi | Komut |
---|---|
Windows | Powershell:$env:AWS_ACCESS_KEY_ID=<access-key> $env:AWS_SECRET_ACCESS_KEY=<secret-access-key> Komut isteminde şunu kullanın: set AWS_ACCESS_KEY_ID=<access-key> set AWS_SECRET_ACCESS_KEY=<secret-access-key> |
Linux | export AWS_ACCESS_KEY_ID=<access-key> export AWS_SECRET_ACCESS_KEY=<secret-access-key> |
macOS | export AWS_ACCESS_KEY_ID=<access-key> export AWS_SECRET_ACCESS_KEY=<secret-access-key> |
Bu kimlik bilgileri, nesneleri kopyalamak için kullanılan önceden imzalı URL'ler oluşturmak için kullanılır.
Nesneleri, dizinleri ve demetleri kopyalama
AzCopy, Url'den Yerleştir API'sini kullandığından veriler doğrudan AWS S3 ve depolama sunucuları arasında kopyalanır. Bu kopyalama işlemleri bilgisayarınızın ağ bant genişliğini kullanmaz.
İpucu
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 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://s3.amazonaws.com/<bucket-name>/<object-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>'
Örnek
azcopy copy 'https://s3.amazonaws.com/mybucket/myobject' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myblob'
Not
Bu makaledeki örneklerde AWS S3 demetleri için yol stili URL'ler kullanılır (Örneğin: http://s3.amazonaws.com/<bucket-name>
).
Sanal barındırılan stil URL'leri de kullanabilirsiniz (Örneğin: http://bucket.s3.amazonaws.com
).
Demetlerin sanal barındırması hakkında daha fazla bilgi edinmek için bkz . Sanal Demet Barındırma.
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://s3.amazonaws.com/<bucket-name>/<directory-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Örnek
azcopy copy 'https://s3.amazonaws.com/mybucket/mydirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Not
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://s3.amazonaws.com/<bucket-name>/<directory-name>/*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Örnek
azcopy copy 'https://s3.amazonaws.com/mybucket/mydirectory/*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Demet 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://s3.amazonaws.com/<bucket-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive=true
Örnek
azcopy copy 'https://s3.amazonaws.com/mybucket' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive=true
Tüm bölgelerdeki tüm demetleri 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://s3.amazonaws.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Örnek
azcopy copy 'https://s3.amazonaws.com' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Belirli bir S3 bölgesindeki tüm demetleri 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://s3-<region-name>.amazonaws.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Örnek
azcopy copy 'https://s3-rds.eu-north-1.amazonaws.com' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Nesne adlandırma kurallarındaki farkları işleme
AWS S3,Azure blob kapsayıcılarına kıyasla demet adları için 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 iki sorunu ele alır; ardışık kısa çizgi içeren dönemler ve demetler içeren demetler. AWS S3 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
.
Ayrıca, AzCopy dosyaların üzerine kopyalanırken, adlandırma çakışmalarını denetler ve bunları çözmeye çalışır. Örneğin, adı bucket-name
ve bucket.name
olan demetler varsa, AzCopy ilk bucket-name
olarak ve sonra bucket-name-2
öğesine adlı bucket.name
bir demet çözümler.
Nesne meta verilerindeki farkları işleme
AWS S3 ve Azure, nesne anahtarları adlarında farklı karakter kümelerine izin verir. AWS S3'ün kullandığı karakterler 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 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 | Açıklama |
---|---|
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: Google Cloud Depolama
- Ö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: