Kopiera data från Amazon S3-buckets med hjälp av AzCopyCopy data from Amazon S3 buckets by using AzCopy

AzCopy är ett kommando rads verktyg som du kan använda för att kopiera blobbar eller filer till eller från ett lagrings konto.AzCopy is a command-line utility that you can use to copy blobs or files to or from a storage account. Den här artikeln hjälper dig att kopiera objekt, kataloger och buckets från Amazon Web Services (AWS) S3 till Azure Blob Storage med hjälp av AzCopy.This article helps you copy objects, directories, and buckets from Amazon Web Services (AWS) S3 to Azure blob storage by using AzCopy.

Välj hur du ska ange autentiseringsuppgifter för auktoriseringChoose how you'll provide authorization credentials

  • Om du vill auktorisera med Azure Storage använder du Azure Active Directory (AD) eller en signatur för signatur för delad åtkomst (SAS).To authorize with the Azure Storage, use Azure Active Directory (AD) or a Shared Access Signature (SAS) token.

  • Om du vill auktorisera med AWS S3 använder du en AWS-åtkomst nyckel och en hemlig åtkomst nyckel.To authorize with AWS S3, use an AWS access key and a secret access key.

Auktorisera med Azure StorageAuthorize with Azure Storage

Se artikeln Kom igång med AZCopy för att hämta AzCopy och välj hur du ska ange autentiseringsuppgifter för lagrings tjänsten.See the Get started with AzCopy article to download AzCopy, and choose how you'll provide authorization credentials to the storage service.

Anteckning

I exemplen i den här artikeln förutsätter vi att du har autentiserat din AzCopy login identitet med hjälp av kommandot.The examples in this article assume that you've authenticated your identity by using the AzCopy login command. AzCopy använder sedan ditt Azure AD-konto för att ge åtkomst till data i Blob Storage.AzCopy then uses your Azure AD account to authorize access to data in Blob storage.

Om du hellre vill använda en SAS-token för att auktorisera åtkomst till BLOB-data kan du lägga till denna token i resurs-URL: en i varje AzCopy-kommando.If you'd rather use a SAS token to authorize access to blob data, then you can append that token to the resource URL in each AzCopy command.

Till exempel: https://mystorageaccount.blob.core.windows.net/mycontainer?<SAS-token>.For example: https://mystorageaccount.blob.core.windows.net/mycontainer?<SAS-token>.

Auktorisera med AWS S3Authorize with AWS S3

Samla in din AWS-åtkomst nyckel och den hemliga åtkomst nyckeln och ställ sedan in följande miljövariabler:Gather your AWS access key and secret access key, and then set the these environment variables:

OperativsystemOperating system KommandoCommand
WindowsWindows set AWS_ACCESS_KEY_ID=<access-key>
set AWS_SECRET_ACCESS_KEY=<secret-access-key>
LinuxLinux export AWS_ACCESS_KEY_ID=<access-key>
export AWS_SECRET_ACCESS_KEY=<secret-access-key>
MacOSMacOS export AWS_ACCESS_KEY_ID=<access-key>
export AWS_SECRET_ACCESS_KEY=<secret-access-key>

Kopiera objekt, kataloger och bucketsCopy objects, directories, and buckets

AzCopy använder plats blocket från URL -API, så data kopieras direkt mellan AWS S3-och lagrings servrar.AzCopy uses the Put Block From URL API, so data is copied directly between AWS S3 and storage servers. Dessa kopierings åtgärder använder inte datorns nätverks bandbredd.These copy operations don't use the network bandwidth of your computer.

Viktigt

Den här funktionen är för närvarande en förhandsversion.This feature is currently in preview. Om du bestämmer dig för att ta bort data från S3-buckets efter en kopierings åtgärd, kontrollerar du att data har kopierats korrekt till ditt lagrings konto innan du tar bort data.If you decide to remove data from your S3 buckets after a copy operation, make sure to verify that the data was properly copied to your storage account before you remove the data.

Kopiera ett objektCopy an object

SyntaxSyntax azcopy copy "https://s3.amazonaws.com/<bucket-name>/<object-name>" "https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>"
ExempelExample azcopy copy "https://s3.amazonaws.com/mybucket/myobject" "https://mystorageaccount.blob.core.windows.net/mycontainer/myblob"

Anteckning

I den här artikeln används URL: er för Sök vägs format för AWS S3-buckets http://s3.amazonaws.com/<bucket-name>(till exempel:).Examples in this article use path-style URLs for AWS S3 buckets (For example: http://s3.amazonaws.com/<bucket-name>).

Du kan också använda virtuella webb adresser i värd format (till exempel: http://bucket.s3.amazonaws.com).You can also use virtual hosted-style URLs as well (For example: http://bucket.s3.amazonaws.com).

Om du vill veta mer om virtuell värd för buckets, se [virtuell värd för buckets]https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html) ] (.To learn more about virtual hosting of buckets, see [Virtual Hosting of Buckets]](https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html).

Kopiera en katalogCopy a directory

SyntaxSyntax azcopy copy "https://s3.amazonaws.com/<bucket-name>/<directory-name>" "https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>" --recursive=true
ExempelExample azcopy copy "https://s3.amazonaws.com/mybucket/mydirectory" "https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory" --recursive=true

Kopiera en BucketCopy a bucket

SyntaxSyntax azcopy copy "https://s3.amazonaws.com/<bucket-name>" "https://<storage-account-name>.blob.core.windows.net/<container-name>" --recursive=true
ExempelExample azcopy copy "https://s3.amazonaws.com/mybucket" "https://mystorageaccount.blob.core.windows.net/mycontainer" --recursive=true

Kopiera alla buckets i alla regionerCopy all buckets in all regions

SyntaxSyntax azcopy copy "https://s3.amazonaws.com/" "https://<storage-account-name>.blob.core.windows.net" --recursive=true
ExempelExample azcopy copy "https://s3.amazonaws.com" "https://mystorageaccount.blob.core.windows.net" --recursive=true

Kopiera alla buckets i en angiven S3-regionCopy all buckets in a specific S3 region

SyntaxSyntax azcopy copy "https://s3-<region-name>.amazonaws.com/" "https://<storage-account-name>.blob.core.windows.net" --recursive=true
ExempelExample azcopy copy "https://s3-rds.eu-north-1.amazonaws.com" "https://mystorageaccount.blob.core.windows.net" --recursive=true

Hantera skillnader i namngivnings regler för objektHandle differences in object naming rules

AWS S3 har en annan uppsättning namn konventioner för Bucket-namn jämfört med Azure Blob-behållare.AWS S3 has a different set of naming conventions for bucket names as compared to Azure blob containers. Du kan läsa om dem här.You can read about them here. Om du väljer att kopiera en grupp med buckets till ett Azure Storage-konto kan kopierings åtgärden Miss Miss kan uppstå på grund av namngivnings skillnader.If you choose to copy a group of buckets to an Azure storage account, the copy operation might fail because of naming differences.

AzCopy hanterar två av de vanligaste problemen som kan uppstå. buckets som innehåller punkter och buckets som innehåller flera bindestreck.AzCopy handles two of the most common issues that can arise; buckets that contain periods and buckets that contain consecutive hyphens. AWS S3 Bucket-namn kan innehålla punkter och flera bindestreck, men en behållare i Azure kan inte.AWS S3 bucket names can contain periods and consecutive hyphens, but a container in Azure can't. AzCopy ersätter punkter med bindestreck och efterföljande bindestreck med ett tal som representerar antalet bindestreck i rad (till exempel: en Bucket-namn my----bucket blir. my-4-bucketAzCopy 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.

Som AzCopy kopior över filer söker den också efter namngivning av kollisioner och försöker lösa dem.Also, as AzCopy copies over files, it checks for naming collisions and attempts to resolve them. Om det till exempel finns bucket-name buckets med namnet och bucket.name, matchar AzCopy en Bucket som heter bucket.name First till bucket-name och sedan till bucket-name-2.For example, if there are buckets with the name bucket-name and bucket.name, AzCopy resolves a bucket named bucket.name first to bucket-name and then to bucket-name-2.

Hantera skillnader i metadata för objektHandle differences in object metadata

AWS S3 och Azure tillåter olika uppsättningar av tecken i namn på objekt nycklar.AWS S3 and Azure allow different sets of characters in the names of object keys. Du kan läsa om de tecken som AWS S3 använder här.You can read about the characters that AWS S3 uses here. På Azure-sidan följer BLOB-objekten namngivnings reglerna för C# identifierare.On the Azure side, blob object keys adhere to the naming rules for C# identifiers.

Som en del av ett copy AzCopy-kommando kan du ange ett värde för s2s-invalid-metadata-handle valfri flagga som anger hur du vill hantera filer där filens metadata innehåller inkompatibla nyckel namn.As part of an AzCopy copy command, you can provide a value for optional the s2s-invalid-metadata-handle flag that specifies how you would like to handle files where the metadata of the file contains incompatible key names. I följande tabell beskrivs varje flagg värde.The following table describes each flag value.

Flagg värdeFlag value BeskrivningDescription
ExcludeIfInvalidExcludeIfInvalid (Standard alternativet) Metadata ingår inte i det överförda objektet.(Default option) The metadata isn't included in the transferred object. AzCopy loggar en varning.AzCopy logs a warning.
FailIfInvalidFailIfInvalid Objekt kopieras inte.Objects aren't copied. AzCopy loggar ett fel och inkluderar det felet i det antal fel som visas i överförings sammanfattningen.AzCopy logs an error and includes that error in the failed count that appears in the transfer summary.
RenameIfInvalidRenameIfInvalid AzCopy matchar den ogiltiga metadata-nyckeln och kopierar objektet till Azure med det matchade nyckel värde paret för metadata.AzCopy resolves the invalid metadata key, and copies the object to Azure using the resolved metadata key value pair. Om du vill veta exakt vilka steg AzCopy tar för att byta namn på objekt nycklar, se avsnittet hur AzCopy byter namn på objekt nycklar nedan.To learn exactly what steps AzCopy takes to rename object keys, see the How AzCopy renames object keys section below. Om AzCopy inte kan byta namn på nyckeln kopieras inte objektet.If AzCopy is unable to rename the key, then the object won't be copied.

Hur AzCopy byter namn på objekt nycklarHow AzCopy renames object keys

AzCopy utför följande steg:AzCopy performs these steps:

  1. Ersätter ogiltiga tecken med .Replaces invalid characters with ''.

  2. Lägger till strängen rename_ i början av en ny giltig nyckel.Adds the string rename_ to the beginning of a new valid key.

    Den här nyckeln används för att spara det ursprungliga metadata- värdet.This key will be used to save the original metadata value.

  3. Lägger till strängen rename_key_ i början av en ny giltig nyckel.Adds the string rename_key_ to the beginning of a new valid key. Den här nyckeln används för att spara de ursprungliga metadata- nyckelnär ogiltig.This key will be used to save original metadata invalid key. Du kan använda den här nyckeln för att försöka återställa metadata på Azure-sidan eftersom metadata-nyckeln bevaras som ett värde i Blob Storage-tjänsten.You can use this key to try and recover the metadata in Azure side since metadata key is preserved as a value on the Blob storage service.

Nästa stegNext steps

Hitta fler exempel i någon av följande artiklar:Find more examples in any of these articles: