Aracılığıyla paylaş


Copy data from Google Cloud Storage to Azure Storage by using AzCopy

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. This article helps you copy objects, directories, and buckets from Google Cloud Storage to Azure Blob Storage by using AzCopy.

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

  • To authorize with Azure Storage, use Microsoft Entra ID or a Shared Access Signature (SAS) token.

  • To authorize with Google Cloud Storage, use a service account key.

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>'.

Authorize with Google Cloud Storage

To authorize with Google Cloud Storage, you'll use a service account key. For information about how to create a service account key, see Creating and managing service account keys.

After you've obtained a service key, set the GOOGLE_APPLICATION_CREDENTIALS environment variable to absolute path to the service account key file:

İş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 uses the Put Block From URL API, so data is copied directly between Google Cloud Storage and storage servers. Bu kopyalama işlemleri bilgisayarınızın ağ bant genişliğini kullanmaz.

Tavsiye

The examples in this section enclose path arguments with single quotes (''). Windows Komut Kabuğu (cmd.exe) dışında tüm komut kabuklarında tek tırnak işareti kullanın. If you're using a Windows Command Shell (cmd.exe), enclose path arguments with double quotes ("") instead of single quotes ('').

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

Copy a Cloud Storage bucket

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

Copy all buckets in a Google Cloud project

First, set the GOOGLE_CLOUD_PROJECT to project ID of Google Cloud project.

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

Copy a subset of buckets in a Google Cloud project

First, set the GOOGLE_CLOUD_PROJECT to project ID of Google Cloud project.

Copy a subset of buckets by using a wildcard symbol (*) in the bucket name. 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

Handle differences in bucket naming rules

Google Cloud Storage has a different set of naming conventions for bucket names as compared to Azure blob containers. 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 handles three of the most common issues that can arise; buckets that contain periods, buckets that contain consecutive hyphens, and buckets that contain underscores. Google Cloud Storage bucket names can contain periods and consecutive hyphens, but a container in Azure can't. AzCopy replaces periods with hyphens and consecutive hyphens with a number that represents the number of consecutive hyphens (For example: a bucket named my----bucket becomes my-4-bucket. If the bucket name has an underscore (_), then AzCopy replaces the underscore with a hyphen. For example, a bucket named my_bucket becomes my-bucket.

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

Google Cloud Storage has a different set of naming conventions for object names as compared to Azure blobs. Burada bunları okuyabilirsiniz.

Azure Storage does not permit object names (or any segment in the virtual directory path) to end with trailing dots (For example my-bucket...). Trailing dots are trimmed off when the copy operation is performed.

Nesne meta verilerindeki farkları işleme

Google Cloud Storage and Azure allow different sets of characters in the names of object keys. You can read about metadata in Google Cloud Storage here. 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
Geçersizse Hariç Tut (Varsayılan seçenek) Meta veriler aktarılan nesneye dahil değildir. AzCopy logs a warning.
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 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. This key will be used to save original metadata invalid key. 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: