SharePoint 가져오기 마이그레이션 API(CreationMigrationJob)SharePoint Import Migration API (CreationMigrationJob)

다음 API 설명은 CSOM(SharePoint 클라이언트 측 개체 모델)의 사용을 기반으로 합니다.The following API description is based on using the SharePoint Client Side Object Model (CSOM). 솔루션에서 CSOM을 참조할 때는 NuGet 패키지를 사용하는 것이 좋습니다.We recommend using NuGet packages when you reference CSOM in your solution.

NuGet 갤러리에서 최신 버전의 CSOM 패키지를 확인할 수 있습니다.You can find latest version of the CSOM package at the NuGet gallery. ID Microsoft.SharePointOnline.CSOM을(를) 사용합니다.Use the ID Microsoft.SharePointOnline.CSOM.

중요

변경 보류 중: 이제 15GB보다 큰 파일이 QuickXorHash을(를) 사용하여 필요한 체크섬을 생성해야 합니다.Pending change: Files larger than 15 GB must now create the required checksum using QuickXorHash. 여기에서 예시를 제공했습니다.We have provided an example here.

이전 MD5Hash 메서드는 여전히 2GB보다 작은 파일에 필요합니다. 그러나 이 요구 사항은 나중에 제거될 것입니다.The previous method of MD5Hash is still required for files smaller than 2 GB; however this requirement will be removed at some point in the future.

메서드Methods

CreateMigrationJobCreateMigrationJob

이 메서드는 새 마이그레이션 가져오기 작업을 생성하고 나중에 별도의 타이머 작업에 의해 처리되도록 대기열에 넣습니다.This method creates a new migration import job and queues it up for later processing by a separate timer job. 작업은 이 메서드에 지정된 Azure Blob Storage 컨테이너에 있는 올바른 형식(사전 정의된 형식)의 가져오기 패키지를 사용합니다.The job will consume a well formed (pre-defined format) import package that is located in the Azure Blob Storage Containers specified in this method. 마이그레이션 작업 처리를 위한 SLA는 미리 구성된 대기열 및 워크로드 조절 설정을 통해 제어되며, 제출된 작업에 대한 SLA 또는 반환 시간이 보장되지 않습니다.The SLA for migration job processing is controlled through pre-configured queue and work load throttling settings, and there is no guaranteed SLA or return time for a submitted job.

구문Syntax

public Guid CreateMigrationJob(
    Guid gWebId,
    string azureContainerSourceUri,
    string azureContainerManifestUri,
    string azureQueueReportUri)

매개 변수Parameters

gWebIDgWebID

패키지를 가져올 대상 웹의 고유 식별자입니다.The unique identifier of the destination web targeted for the package import. 가져오기에 대한 추가 정보 및 식별자는 가져오기 패키지 자체 내에 지정됩니다.Additional information and identifiers for the import are specified within the import package itself. 이 식별자는 CSOM 호출을 사용하여 대상 웹을 쿼리하여 프로그래밍 방식으로 찾을 수 있습니다.This identifier can be found programmatically by querying the target web using CSOM calls.

azureContainerSourceUriazureContainerSourceUri

유형 블록의 이진 파일이 포함된 Azure Blob Storage 컨테이너 에 액세스하기 위한 SAS 토큰을 포함한 유효한 URL입니다.The valid URL including SAS token for accessing the Azure Blob Storage Container that contains the binary files of type block. SAS 토큰은 읽기 및 목록 권한으로만 생성되어야 합니다. 그렇지 않으면 마이그레이션 작업이 실패합니다.The SAS token must have been created with only Read and List permissions or the migration job will fail. SAS 토큰에는 적어도 작업이 제출된 시점 이전에 시작하는 수명이 있어야 가져오기가 성공적으로 완료될 수 있습니다.The SAS token should at least have a lifetime that starts no later than when the job was submitted, until a reasonable time for successful import to have concluded.

필요한 권한은 Azure Storage API에서 다음과 같습니다.The required permissions are as follows in the Azure Storage API:

(SharedAccessBlobPermissions.Read | SharedAccessBlobPermissions.List)

참고: SAS 토큰에 대한 읽기 및 목록 사용 권한을 적용하기 위한 변경 사항이 이후 빌드에서 제공될 예정입니다.Note: The change to enforce Read and List permissions on the SAS token is coming in a future build. 그때까지는 시행되지 않습니다.Until then, it will not be enforced. 그러나 이러한 값을 사용하는 것이 가장 바람직합니다.However, it is a best practice to use these values.

가져오는 동안 고객이 파일을 수정하지 않도록 하려면 컨테이너의 모든 파일에 하나 이상의 스냅샷이 적용되어야 합니다.All files in the container must have at least a single snapshot applied to them to ensure that no file modification is made by the customer during the import. 스냅샷이 없는 파일은 가져오는 동안 건너뛰고 오류가 발생하지만 작업은 가져오기를 계속하려고 시도합니다.Any file that does not have a snapshot will be skipped during import and have an error thrown, although the job will attempt to continue the import. 가져오기 파이프라인은 가져올 때 사용할 수 있는 파일의 최신 스냅샷을 사용합니다.The import pipeline will use the latest snapshot of the file available at the time of import. 다음은 Azure Blob Storage에 업로드한 후 파일에 스냅샷을 생성하는 데 사용할 수 있는 코드의 예입니다.The following is an example of the code that might be used to create a snapshot on a file after it is uploaded to Azure Blob Storage:

CloudBlockBlob blob = blobContainerObj.GetBlockBlobReference(file);
blob.UploadFromStream(stm);
blob.CreateSnapshot();

참고

모든 파일에서 최신 스냅샷을 요구 및 사용하기 위한 변경 사항은 향후 빌드에서 제공될 예정이며, 그 때까지 무시됩니다.The change to require and use the latest SnapShots on all files is coming in a future build, and until then will be ignored.

azureContainerManifestUriazureContainerManifestUri

해당 매니페스트 및 XML 파일을 설명하는 기타 패키지의 블록 Blob을 포함하는 Azure Blob Storage 컨테이너에 액세스하는 데 유효한 URL(SAS 토큰 포함).The valid URL including SAS token for accessing the Azure Blob Storage Container that contains the block blobs for the manifest and other package describing XML files. 이 위치는 로그 출력에도 사용됩니다.This location will also be used for the log output. 이 컨테이너는 zureContainerSourceUri에 사용된 것과 같을 수 없습니다.This container cannot be the same as the one used for the azureContainerSourceUri. 읽기, 목록 및 쓰기 권한만 사용하여 SAS 토큰을 생성했어야 합니다. 그렇지 않으면 마이그레이션 작업이 실패합니다.The SAS token must have been created with only Read, List, and Write permissions or the migration job will fail. SAS 토큰에는 적어도 작업이 제출된 시점 이전에 시작하는 수명이 있어야 가져오기가 성공적으로 완료될 수 있습니다.The SAS token should at least have a lifetime that starts no later than when the job was submitted, until a reasonable time for successful import to have concluded.

참고

SAS 토큰에 대한 읽기, 목록 및 쓰기 권한을 적용하는 변경 사항은 향후 빌드에서 제공될 예정이며, 그 때까지는 적용되지 않지만 이러한 값을 사용하는 것이 좋습니다.The change to enforce Read, List and Write permissions on the SAS token is coming in a future build, and until then will be not be enforced, however it is best practice to use these values. 현재 빌드를 사용하여 문제가 발생하는 경우 목록 권한을 임시 해결 방법으로 제거해 보십시오. 곧 문제가 발생할 수 있습니다.If an issue arises using a current build, try removing the List permission as a temporary workaround, noting that it will become required soon.

가져오는 동안 고객이 파일을 수정하지 않도록 하려면 컨테이너의 모든 파일에 하나 이상의 스냅샷이 적용되어야 합니다.All files in the container must have at least a single snapshot applied to them to ensure that no file modification is made by the customer during the import. 스냅샷이 없는 파일은 가져오는 동안 오류가 발생하고 오류가 발생하여 전체 마이그레이션 작업이 실패할 수 있습니다.Any file that does not have a snapshot will cause failures during the import and have errors thrown, potentially failing the entire migration job.

참고

모든 파일에서 최신 스냅샷을 요구 및 사용하기 위한 변경 사항은 향후에 제공될 예정입니다.The change to require and use the latest SnapShots on all files is coming in a future build. 그때까지 해당 파일들은 무시될 것입니다.Until then they will be ignored.

azureQueueReportUriazureQueueReportUri

사용자에게 액세스하기 위한 SAS 토큰을 포함한 유효한 URL은 마이그레이션 작업 진행률 알림을 반환하는 데 사용되는 Azure 큐를 제공했습니다.The valid URL including SAS token for accessing the user provided Azure Queue used for returning notifications of migration job progress. 가져오는 동안 알림 큐를 사용하지 않을 경우 이 값은 Null일 수 있습니다.This value can be null if no notification queue will be used during the import. 이 값이 Null이 아니고 이 URI의 SAS 토큰에 적절한 액세스가 허용된 경우 실시간 상태 업데이트에 사용됩니다.If this value is not null and proper access is granted in the SAS token in this URI, it will be used for real-time status update. SAS 토큰은 추가, 읽기 및 업데이트 권한으로만 생성되어야 합니다. 그렇지 않으면 마이그레이션 작업이 대기열에 이벤트를 추가할 수 없습니다.The SAS token must have been created with only Add, Read, and Update permissions or the migration job will be unable to add events to the queue. 필요한 권한은 Azure Storage API에서 다음과 같습니다.The required permissions are as follows in the Azure Storage API:

(SharedAccessQueuePermissions.Add | SharedAccessQueuePermissions.Read | SharedAccessQueuePermissions.Update)

수락되면, 작업 ID가 제공되고 액세스 권한이 올바른 경우 이 ID가 알림 큐에 작성됩니다.Once accepted, the job ID will be written to the notification queue if it was provided and access is valid. 알림 큐로 다시 보낸 값에서 각 작업이 식별 되므로 동시에 여러 마이그레이션 작업에 알림 큐를 사용할 수 있습니다.The notification queue can be used for multiple migration jobs at the same time, as each job will identify itself in values sent back to the notification queue.

다음은 Azure 보고 대기열에 로그인한 모든 이벤트 유형의 예입니다.The following are examples of all event types logged into the Azure reporting queue:

이벤트:JobQueued JobId: 845daca4-5529-4b0e-85ab-a603efee5b12 시간: 09/29/2020 19:56:02.883 SiteId: 48917234-de43-474a-9f1b-8d98ffa08425 DbId: 8fd09323-b23f-430d-8957-213586ce3861 TotalRetryCount: 0 MigrationType: 없음 MigrationDirection: Import CorrelationId: c8d97e9f-802f-0000-ceac-44663834d510Event:JobQueued JobId: 845daca4-5529-4b0e-85ab-a603efee5b12 Time: 09/29/2020 19:56:02.883 SiteId: 48917234-de43-474a-9f1b-8d98ffa08425 DbId: 8fd09323-b23f-430d-8957-213586ce3861 TotalRetryCount: 0 MigrationType: None MigrationDirection: Import CorrelationId: c8d97e9f-802f-0000-ceac-44663834d510

이벤트:JobPostponed JobId:845daca4-5529-4b0e-85ab-a603efee5b12 Time:09/29/2020 19:56:57.598 NextPickupTime:09/29/2020 20:16:57.519 SiteId:48917234-de43-474a-9f1b-8d98ffa08425 DbId:8fd09323-b23f-430d-8957-213586ce3861 JobsInQueue: TotalRetryCount:0 MigrationType:해당 없음 MigrationDirection:Import CorrelationId:d5d97e9f-702c-0000-ceb9-354fefa5e9f6Event:JobPostponed JobId:845daca4-5529-4b0e-85ab-a603efee5b12 Time:09/29/2020 19:56:57.598 NextPickupTime:09/29/2020 20:16:57.519 SiteId:48917234-de43-474a-9f1b-8d98ffa08425 DbId:8fd09323-b23f-430d-8957-213586ce3861 JobsInQueue: TotalRetryCount:0 MigrationType:None MigrationDirection:Import CorrelationId:d5d97e9f-702c-0000-ceb9-354fefa5e9f6

이벤트:JobLogFileCreate JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:56:29.053 FileName:Import-071f9aad-36e6-4bef-9f09-40b5c7498ecd-1.log CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68Event:JobLogFileCreate JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:56:29.053 FileName:Import-071f9aad-36e6-4bef-9f09-40b5c7498ecd-1.log CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68

이벤트: JobStart JobId: 071f9aad-36e6-4bef-9f09-40b5c7498ecd Time: 09/29/2020 19:56:29.100 SiteId: 48917234-de43-474a-9f1b-8d98ffa08425 WebId: 36b66979-4a43-4b93-9b92-909c7186ff98 DBId: 8fd09323-b23f-430d-8957-213586ce3861 FarmId: 211e600c-f48d-4319-ba92-61150c8e8e8c ServerId: cfd27448-822a-420b-bcc8-4f39629b01bc SubscriptionId: 51812136-3cba-482d-9696-532cddceab31 TotalRetryCount: 0 MigrationType: 해당 없음 MigrationDirection: 가져오기 CorrelationId: c308c0ea-a7f5-4be9-acd4-1ebd39867434Event:JobStart JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:56:29.100 SiteId:48917234-de43-474a-9f1b-8d98ffa08425 WebId:36b66979-4a43-4b93-9b92-909c7186ff98 DBId:8fd09323-b23f-430d-8957-213586ce3861 FarmId:211e600c-f48d-4319-ba92-61150c8e8e8c ServerId:cfd27448-822a-420b-bcc8-4f39629b01bc SubscriptionId:51812136-3cba-482d-9696-532cddceab31 TotalRetryCount:0 MigrationType:None MigrationDirection:Import CorrelationId:c308c0ea-a7f5-4be9-acd4-1ebd39867434

이벤트:JobProgress JobId:845daca4-5529-4b0e-85ab-a603efee5b12 Time:09/29/2020 19:56:32.265 FilesCreated:15 BytesProcessed:45 ObjectsProcessed:217 TotalExpectedSPObjects:403 TotalErrors:0 TotalWarnings:0 TotalRetryCount:0 MigrationType:해당 없음 MigrationDirection:가져오기 WaitTimeOnSqlThrottlingMilliseconds:0 TotalDurationInMs:0 CpuDurationInMs:0 SqlDurationInMs:0 SqlQueryCount:0 CreatedOrUpdatedFileStatsBySize:{"0-1K":{"Count":15,"TotalSize":45,"TotalDownloadTime":251,"TotalCreationTime":6754}} ObjectsStatsByType:{"SPUser":{"Count":1,"TotalTime":289,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFolder":{"Count":2,"TotalTime":144,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPDocumentLibrary":{"Count":1,"TotalTime":173,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFile":{"Count":200,"TotalTime":6765,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPListItem":{"Count":14,"TotalTime":2111,"AccumulatedVersions":0,"ObjectsWithVersions":0}} TotalExpectedBytes:0 CorrelationId:ccd97e9f-a0cc-0000-ceb9-37a900bec68dEvent:JobProgress JobId:845daca4-5529-4b0e-85ab-a603efee5b12 Time:09/29/2020 19:56:32.265 FilesCreated:15 BytesProcessed:45 ObjectsProcessed:217 TotalExpectedSPObjects:403 TotalErrors:0 TotalWarnings:0 TotalRetryCount:0 MigrationType:None MigrationDirection:Import WaitTimeOnSqlThrottlingMilliseconds:0 TotalDurationInMs:0 CpuDurationInMs:0 SqlDurationInMs:0 SqlQueryCount:0 CreatedOrUpdatedFileStatsBySize:{"0-1K":{"Count":15,"TotalSize":45,"TotalDownloadTime":251,"TotalCreationTime":6754}} ObjectsStatsByType:{"SPUser":{"Count":1,"TotalTime":289,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFolder":{"Count":2,"TotalTime":144,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPDocumentLibrary":{"Count":1,"TotalTime":173,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFile":{"Count":200,"TotalTime":6765,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPListItem":{"Count":14,"TotalTime":2111,"AccumulatedVersions":0,"ObjectsWithVersions":0}} TotalExpectedBytes:0 CorrelationId:ccd97e9f-a0cc-0000-ceb9-37a900bec68d

이벤트:JobEnd JobId:16d658cf-ecd3-485f-9c9e-1ca268565e24 Time:09/29/2020 20:29:38.180 FilesCreated:200 BytesProcessed:600 ObjectsProcessed:403 TotalExpectedSPObjects:403 TotalErrors:0 TotalWarnings:0 TotalRetryCount:0 MigrationType:해당 없음 MigrationDirection:가져오기 WaitTimeOnSqlThrottlingMilliseconds:0 TotalDurationInMs:372294.0861 CpuDurationInMs:17351 SqlDurationInMs:98359 SqlQueryCount:1998 CreatedOrUpdatedFileStatsBySize:{"0-1K":{"Count":200,"TotalSize":600,"TotalDownloadTime":15448,"TotalCreationTime":275662}} ObjectsStatsByType:{"SPUser":{"Count":1,"TotalTime":44,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFolder":{"Count":2,"TotalTime":108,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPDocumentLibrary":{"Count":1,"TotalTime":50,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFile":{"Count":200,"TotalTime":293628,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPListItem":{"Count":200,"TotalTime":76541,"AccumulatedVersions":0,"ObjectsWithVersions":0}} TotalExpectedBytes:0 CorrelationId:59db7e9f-a003-0000-ceb9-300001119ee3Event:JobEnd JobId:16d658cf-ecd3-485f-9c9e-1ca268565e24 Time:09/29/2020 20:29:38.180 FilesCreated:200 BytesProcessed:600 ObjectsProcessed:403 TotalExpectedSPObjects:403 TotalErrors:0 TotalWarnings:0 TotalRetryCount:0 MigrationType:None MigrationDirection:Import WaitTimeOnSqlThrottlingMilliseconds:0 TotalDurationInMs:372294.0861 CpuDurationInMs:17351 SqlDurationInMs:98359 SqlQueryCount:1998 CreatedOrUpdatedFileStatsBySize:{"0-1K":{"Count":200,"TotalSize":600,"TotalDownloadTime":15448,"TotalCreationTime":275662}} ObjectsStatsByType:{"SPUser":{"Count":1,"TotalTime":44,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFolder":{"Count":2,"TotalTime":108,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPDocumentLibrary":{"Count":1,"TotalTime":50,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFile":{"Count":200,"TotalTime":293628,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPListItem":{"Count":200,"TotalTime":76541,"AccumulatedVersions":0,"ObjectsWithVersions":0}} TotalExpectedBytes:0 CorrelationId:59db7e9f-a003-0000-ceb9-300001119ee3

이벤트:JobDeleted JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:56:29.053 CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68Event:JobDeleted JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:56:29.053 CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68

이벤트:JobCancelled JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:58:29.053 TotalRetryCount:0 CancelledByUser:false MigrationType:해당 없음 MigrationDirection:가져오기 CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68Event:JobCancelled JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:58:29.053 TotalRetryCount:0 CancelledByUser:false MigrationType:None MigrationDirection:Import CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68

이벤트:JobError JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time: 02/05/2019 06:56:09.732 TotalRetryCount:0 MigrationType:해당 없음 MigrationDirection:Import ObjectType:File Url:Shared Documents/file.pdf Id:fae7b4b0-2912-11e9-b0f3-7b554a52d6ab ErrorCode:-2147024816 ErrorType:Microsoft.SharePoint.SPException Message:ErrorMessage CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75Event:JobError JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time: 02/05/2019 06:56:09.732 TotalRetryCount:0 MigrationType:None MigrationDirection:Import ObjectType:File Url:Shared Documents/file.pdf Id:fae7b4b0-2912-11e9-b0f3-7b554a52d6ab ErrorCode:-2147024816 ErrorType:Microsoft.SharePoint.SPException Message:ErrorMessage CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75

이벤트:JobWarning JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time: 02/05/2019 06:56:09.732 TotalRetryCount:0 MigrationType:해당 없음 MigrationDirection:Import ObjectType:File Url:Shared Documents/file.pdf Id:fae7b4b0-2912-11e9-b0f3-7b554a52d6ab ErrorCode:-2147024816 ErrorType:Microsoft.SharePoint.SPException Message:ErrorMessage CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75Event:JobWarning JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time: 02/05/2019 06:56:09.732 TotalRetryCount:0 MigrationType:None MigrationDirection:Import ObjectType:File Url:Shared Documents/file.pdf Id:fae7b4b0-2912-11e9-b0f3-7b554a52d6ab ErrorCode:-2147024816 ErrorType:Microsoft.SharePoint.SPException Message:ErrorMessage CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75

이벤트:FinishManifestFileUpload JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time:02/05/2019 06:56:09.732 ManifestFileName:Filename CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75Event:FinishManifestFileUpload JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time:02/05/2019 06:56:09.732 ManifestFileName:Filename CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75

반환값Return values

작업이 성공적으로 대기열에 저장되거나 실패할 경우 마이그레이션 작업의 고유 식별자가 반환됩니다.The unique identifier for the migration job is returned if the job is successfully queued, or if unsuccessful, a null value will be returned. 마이그레이션 작업 고유 식별자를 사용하여 마이그레이션 작업 상태가 대기열에 있거나 GetMigration JobStatus 방법을 사용하여 처리 중인 마이그레이션 작업 상태를 쿼리할 수 있습니다.The migration job unique identifier can be used to query the migration job status while it is in the queue or being processed by using the GetMigrationJobStatus method.

예:Example:

Guid MigrationJobId = TargetSite.CreateMigrationJob(
  TargetWebId,
  azureContainerSourceUri,
  azureContainerManifestUri,
  azureQueueReportUri);

GetMigrationJobStatusGetMigrationJobStatus

이 메서드는 지정된 마이그레이션 작업의 큐 상태를 쿼리합니다.This method queries the queue status for the specified migration job. 이 작업은 CreateMigrationJob 메서드를 호출한 후의 선택형 확인 사항입니다.It is an optional check after calling the CreateMigrationJob method. 마이그레이션 작업이 완료되면 더 이상 대기열에 표시되지 않으며 알림 대기열 및/또는 로그 출력에서 자세한 상태를 확인해야 합니다.Once the migration job has completed, it will no longer show up in the queue and the notification queue and/or log output should be checked for detailed status.

구문Syntax

[ClientNS.ClientCallableMethod]
public SPMigrationJobState GetMigrationJobStatus(Guid MigrationJobId)

매개 변수Parameters

IDID

마이그레이션 작업 생성 메서드에서 반환된 마이그레이션 작업의 고유 식별자입니다.The unique identifier of the migration job returned from CreateMigrationJob method.

반환값Return values

대기열에 작업이 있는 경우 마이그레이션 작업 상태는 SPMigration JobState 개체를 사용하여 반환됩니다.The migration job status is returned using a SPMigrationJobState object if the job is found in the queue. 실패할 경우 해당 없음(0) 값이 반환됩니다.If unsuccessful, a value of none (0) will be returned.

Example

SPMigrationJobState CurrentJobState = TargetSite.GetMigrationJobStatus(MigrationJobId);

열거형Enumerations

SP 마이그레이션 작업 상태SPMigrationJobState

SPMigrationJobState는 가져오기 대기열에서 가능한 주 상태를 추적하는 열거형입니다.SPMigrationJobState is an enumeration that tracks possible major states in the import queue.

구성원Members

멤버 이름Member name 설명Description
없음None 마이그레이션 작업은 현재 완료 및 제거를 통해 또는 잘못된 작업 식별자를 통해 대기열에서 알 수 없습니다.Migration job is currently unknown to the queue, either through completion and removal, or invalid job identifier. 값 = 0Value=0.
대기Queued 마이그레이션 작업이 현재 대기열로 알려져 있으며 처리되지 않습니다.Migration job is currently known by the queue and not being processed. 값 = 2Value=2.
처리Processing 마이그레이션 작업은 현재 대기열에서 알려져 있으며 현재 처리 중입니다.Migration job is currently known by the queue and is being actively processed. 값 =4.Value=4.

패키지 구조 가져오기Import Package Structure

패키지 구조는 제한된 버전의 컨텐츠 배포 패키지 스키마를 기반으로 합니다.Package structure is based on a constrained version of the Content Deployment package schema. 원래 전체 스키마에 대한 설명서는 docs.microsoft.com에서 찾을 수 있습니다.Documentation for the original full schema can be found at docs.microsoft.com. docs.microsoft.com에 게시될 때까지, 제약된 구조는 부록의 이 문서에서 확인할 수 있습니다.Until published on docs.microsoft.com, the constrained structure can be found in this document in the appendix.

XML 파일XML file 스키마 파일Schema File 설명Description
ExportSettings.XMLExportSettings.xml DeploymentExportSettings SchemaDeploymentExportSettings Schema “콘텐츠 마이그레이션 패키지로 내보낸 Requirements.xml 파일의 유효성을 검증합니다.Provides validation for the ExportSettings.XML file exported into the content migration package. ExportSettings.XML은 다음을 수행합니다.ExportSettings.XML does as follows:
- SPExportSettings 클래스, 그리고 콘텐츠 마이그레이션 개체 모델의 일부인 다른 클래스를 사용하여 지정된 내보내기 설정을 저장합니다.- Contains the export settings specified by using the SPExportSettings class and other classes that are part of the content migration object model.
- (마이그레이션 대상 사이트에서 이루어지는) 후속 내보내기 프로세스로 인해 가져오기 설정에 지정된 지침이 적용될 수 있도록 합니다.- Ensures that the subsequent import process (at the migration target site) enforces the directives specified in the export settings.
- 마이그레이션 패키지로 내보낸 모든 개체의 카탈로그를 유지합니다.- Maintains a catalog of all objects exported to the migration package.
LookupListMap.XMLLookupListMap.xml DeploymentLookupListMap 스키마DeploymentLookupListMap Schema 콘텐츠 마이그레이션 패키지로 내보낸 LookupListMap.XML 파일의 유효성을 검사합니다. LookupListMap.XML은 SharePoint 목록 항목(목록 항목에서 목록 항목으로) 참조를 기록하는 간단한 조회 목록을 유지합니다.Provides validation for the LookupListMap.XML file exported into the content migration package. LookupListMap.XML maintains a simple lookup list that records SharePoint list item (list item to list item) references.
Manifest.XMLManifest.xml DeploymentManifest 스키마DeploymentManifest Schema 콘텐츠 마이그레이션 패키지로 내보낸 Manifest.xml 파일의 유효성을 검사합니다.Provides validation for the Manifest.xml file that is exported into the content migration package. 원본상 사이트의 콘텐츠와 구조로 이루어진 목록을 포함하는 포괄적인 매니페스트를 제공합니다.Provides a comprehensive manifest containing listings of both the contents and the structure of the source site. 마이그레이션 작업은 매니페스트 파일을 사용하여 원본 사이트와 해당 구성 요소를 대상 사이트로 가져올 때 재구성합니다.The migration operation uses the manifest file to reconstitute the source site and its components when it is imported to the destination site.
Requirements.xmlRequirements.xml DeploymentRequirements 스키마DeploymentRequirements Schema 콘텐츠 마이그레이션 패키지로 내보낸 Requirements.xml 파일의 유효성을 검증합니다.Provides validation for the Requirements.xml file exported into the content migration package. Requirements.xml은 마이그레이션 대상의 설치 요구 사항의 형태로 (예: 기능 정의, 템플릿 버전, 웹 파트 어셈블리, 언어 팩 등) 배포 요구 사항 목록을 유지합니다.Requirements.xml maintains list of deployment requirements in the form of installation requirements on the migration target, such as feature definitions, template versions, Web Part assemblies, language packs, and so forth.
RootObjectMap.xmlRootObjectMap.xml DeploymentRootObjectMap 스키마DeploymentRootObjectMap Schema 콘텐츠 마이그레이션 패키지로 내보낸 RootObjectMap.xml 파일의 유효성을 검사합니다. RootObjectMap.xml은 보조(종속) 개체의 매핑 목록을 유지합니다. 이 목록을 바탕으로 마이그레이션 작업의 가져오기 단계에서 루트 개체 매핑의 위치에 상대적으로 종속 개체를 올바르게 배치할 수 있습니다.Provides validation for the RootObjectMap.xml file exported into the content migration package.RootObjectMap.xml maintains a list of mappings of secondary (dependent) objects, which allows the import phase of the migration operation to correctly place the dependent objects relative to the locations of the root object mappings.
SystemData.xmlSystemData.xml DeploymentSystemData 스키마DeploymentSystemData Schema 컨텐츠 마이그레이션 패키지로 내보낸 SystemData.xml 파일의 유효성을 검사합니다.SystemData.xml은 다양한 로우 레벨 시스템 데이터를 수집합니다.Provides validation for the SystemData.xml file exported into the content migration package.SystemData.xml does the as follows: Collects various low-level system data. 매니페스트.xml 파일의 수와 이름을 기록합니다(마이그레이션이 여러 매니페스트를 사용하는 경우).Records the number and names of Manifest.xml files (in cases where the migration uses multiple manifests).
UserGroupMap.xmlUserGroupMap.xml DeploymentUserGroupMap 스키마DeploymentUserGroupMap Schema 콘텐츠 마이그레이션 패키지로 내보낸 UserGroup.xml 파일의 유효성을 검사합니다. UserGroup.xml은 사용자 및 사용자 보간 그룹 목록을 액세스 보안 및 사용 권한을 기준으로 유지합니다.Provides validation for the UserGroup.xml file exported into the content migration package. UserGroup.xml maintains a list of users and user security groups with respect to access security and permissions.
ViewFormsList.xmlViewFormsList.xml DeploymentViewFormsList 스키마DeploymentViewFormsList Schema 콘텐츠 마이그레이션 패키지로 내보낸 ViewFormsList.xml 파일의 유효성을 검사합ㄴ디ㅏ. ViewFormsList.xml은 웹 파트 목록을 유지하고 각 웹 파트가 보기인지 아니면 양식인지 추적합니다.Provides validation for the ViewFormsList.xml file exported into the content migration package.ViewFormsList.xml maintains a list of Web Parts and tracks whether each is a view or form.

콘텐츠 구조Content structure

패키지 구조의 매니페스트 내에서 참조되는 파일 콘텐츠는 CreateMigrationJob의 azureContainerSourceUri 매개 변수로 정의된 Azure Blob Store 컨테이너 내의 플랫 또는 계층 구조에 저장되어야 합니다.File content that is referenced within the manifest of the package structure must be stored in either a flat or hierarchical structure within the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerSourceUri parameter. 예를 들어 레거시 버전 내보내기에서 생성된 가져오기 패키지는 계층적이 아니며, 대신 ########.dat와 같은 패턴의 루트 수준에서 저장된 모든 파일을 가집니다. 여기서 # 기호는 0에서 시작하는 16진수 문자이고 파일 이름은 패키지 내에서 반복되지 않습니다.For example, import packages generated from a legacy version export will not be hierarchical, and will instead have all files stored at the root level with a pattern like ########.dat where the # symbols are hexadecimal characters starting at 0 and no file names are repeated within a package. 또는 파일 공유에서 생성된 패키지는 동일한 계층에 원본 폴더 계층 및 파일 이름을 보존할 수 있습니다.Alternately, a package generated from a file share can have the source folder hierarchy and file names preserved in the same hierarchy.

구조에 대한 주요 요구 사항은 Manifest.XML 파일 의 FileValue 참조가 가져오기 작업을 위해 Azure Blob 저장소 위치 내에 콘텐츠가 저장되는 정확한 이름 및 물리적 계층을 참조해야 한다는 것입니다.The main requirement for the structure is that the FileValue references in the Manifest.XML file must refer to the exact name and physical hierarchy that the content is stored in within the Azure Blob Store location for import. 가져오기 작업의 대상 파일 이름과 폴더 계층은 실제 명명 및 계층 구조와 직접 관련이 없으며 대신 Manifest.xml 파일을 통해 정의됩니다.The destination file names and folder hierarchy from the import operation are not directly related to the physical naming and hierarchy and are instead defined through the Manifest.XML file.

ExportSettings.XMLExportSettings.XML

ExportSettings 파일이 CreateMigrationJob의 azureContainerManifestUri 매개 변수로 정의 된 Azure Blob 저장소 컨테이너의 루트에 있어야 합니다.The ExportSettings.XML file is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. 이 필수 파일은 현재 게시된 전체 2013 패키지 스키마에서 몇 가지 제한적인 변경 내용이 포함된 제한된 DeploymentExportSettings를 사용하여 유효성을 검사합니다.This required file is validated using the constrained DeploymentExportSettings.XSD, which has some limited changes from current published full 2013 package schema.

기본 요구 사항은 내보내기 설정 SiteUrl 값을 가져오기 패키지의 나머지 부분에 사용된 원본 URL과 일치하는 URL로 채워야 한다는 것입니다.The main requirement is that the ExportSettings SiteUrl value must be populated with a URL consistent with the source URL used for the rest of the import package. 원본으로 파일 공유의 경우 URL은 패키지의 나머지 부분에 있는 원본 URL로 미리 지정되고 원본 사이트에서 내보내기 작업을 통해 생성된 패키지는 원본 사이트 모음 URL이 됩니다.In the case of file shares as a source, the URL would be pre-specified to be the source URL in the rest of the package, whereas a package generated through an export operation at a source site would be its original source site collection URL.

LookupListMap.XMLLookupListMap.XML

LookupListMap.XML 파일이 포함된 경우 CreateMigrationJob의 zureContainerManifestUri 매개 변수에 의해 정의된 Azure Blob Store 컨테이너의 루트에 있어야 합니다.The LookupListMap.XML file, if included, is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. 이 선택적 파일은 현재 게시된 전체 2013 패키지 스키마에 변경 내용이 없는 제약이 있는 DeploymentLookupListMap 를 사용하여 유효성을 검사합니다.This optional file is validated using the constrained DeploymentLookupListMap.XSD, which has no change from current published full 2013 package schema.

파이프라인에 대한 가져오기 패키지에는 목록 또는 문서 라이브러리의 필드 또는 뷰가 정의되지 않으므로 LookupListMap.XML 파일에는 일반적으로 루트 아래에 하위 노드가 포함되지 않으므로 이 경우 경고가 기록될 수 있지만 필요하지 않은 경우 패키지에서 제외할 수도 있습니다.Since an import package for the pipeline does not include defining fields or views on a list or document library, the LookupListMap.XML file will normally include no child nodes under the root and as such can also be excluded from the package if not required, although a warning may be logged in this case.

Manifest.XMLManifest.XML

패키지에 대한 Manifest .XML 파일의 모든 인스턴스는 CreateMigrationJob의 azureContainerManifestUri 매개 변수로 정의 되는 Azure Blob 저장소 컨테이너의 루트에 있어야 합니다.All instances of the Manifest.XML file for a package are expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. 이 필수 파일은 제약이 있는 DeploymentManifest.XSD 를 사용하여 현재 게시된 전체 2013 패키지 스키마의 중요한 변경 내용이 여러 개 포함되어 있습니다.This required file is validated using the constrained DeploymentManifest.XSD, which has multiple major changes and significant reduction in types from current published full 2013 package schema.

Manifest.xml 은 패키지 내의 메타 데이터에 대한 기본 설명자이며, 목록/폴더/항목 계층 구조와 UserGroupMap.XML 파일에 정의된 사용자 및 그룹에 대한 참조를 포함하는 항목에 대한 메타 데이터와 함께 제공됩니다.The Manifest.XML is the primary descriptor for metadata within the package, and provides the list/folder/item hierarchy, along with metadata for the items including references back to users and groups defined in the UserGroupMap.XML file. Manifest.XML 파일(다른 파일 이름을 사용하여 식별하여 고유하게 식별할 수 있음)이 두 개 이상 있을 수 있으며 모두 SystemData.XML 파일의 ManifestFile 항목 내 참조를 통해 가져오기 파이프 라인에서 찾을 수 있습니다.There may be more than one Manifest.XML file (which can be identified using different file names to uniquely identify them), and all are found by the import pipeline through references within the SystemData.XML file’s ManifestFile entries.

파이프라인을 통해 성공적으로 가져오기 위한 Manifest.XML의 주요 요구 사항은 웹 ID 및 문서 라이브러리 ID/목록 ID가 대상 위치와 일치해야 한다는 것입니다.The main requirements for Manifest.XML to successfully import through the pipeline are for the Web ID and Document Library ID/List ID be consistent with the target location. 대상 위치와 일치하지 않는 웹 ID를 사용하는 경우 가져오기 작업의 상위 웹을 찾을 수 없기 때문에 오류가 발생합니다.If a Web ID is used which doesn’t match the target location, errors will occur because the parent web for the import operation cannot be found.

마찬가지로, 문서 라이브러리 ID/목록 ID가 잘못되면 대상 문서 라이브러리 또는 목록으로 가져올 수 없습니다.Likewise, an incorrect Document Library ID/List ID will prevent the importation into the target Document Library or List. 동일한 사이트 모음 내에서 ID를 재사용하지 마십시오. 대상 웹에 상관없이 동일한 패키지를 동일한 대상 사이트 모음으로 가져올 수 없습니다.Never reuse IDs within the same site collection, so same packages should not be imported to the same target site collection regardless of the destination web.

문서 라이브러리 또는 목록에 있는 개별 파일 및 폴더의 경우, 해당 식별자는 동일한 위치로 가져오기 이벤트 간에 일관성이 있어야 합니다.For individual files and folders within the document library or list, their identifiers should be consistent between import events to the same location. 파일 공유에서 생성된 패키지를 가져오려면 처음에 각 파일 및 폴더에 대해 새 GUID를 생성하고 해당 GUID를 나타내는 목록 항목에 대해 일치하는 GUID를 생성해야 합니다.An import of a package generated from a file share would initially require generating new GUIDs for each file and folder, along with matching GUIDs for the list items that represent them. 따라서 동일한 패키지를 사용하여 동일한 대상에 대해 두 번째 가져오기를 수행하면 동일한 ID가 유지되지만 동일한 콘텐츠에 대해 새 패키지를 사용하여 동일한 대상에 대해 두 번째 가져오기를 수행하면 충돌하는 모든 항목에 대해 ID 충돌 및 가져오기 오류가 발생합니다.Therefore, performing a second import against the same target using the same package would keep the same IDs, but performing a second import against the same target using a new package for the same content would result in ID conflicts and import errors for all items in conflict.

파일 공유에서 처음 생성된 패키지는 효과적으로 원본 ID에 대한 기록의 한 형태이며 의도하지 않은 경우 ID 충돌을 방지하고 ID가 올바르게 덮어쓰기, 삭제 또는 이동되도록 허용하기 위해 후속 패키지 생성의 참조로 사용될 수 있습니다.The package generated initially from a file share is effectively a form of record for the original generated IDs and can potentially be used as a reference for follow up package generation to prevent ID collisions when unintended, and to allow like IDs to ensure correct overwrite, deletion, or move activities.

Requirements.XMLRequirements.XML

Requirements.XML 파일은 CreateMigrationJob의 azureContainerManifestUri 매개 변수에 정의된 Azure Blob 저장소 컨테이너의 루트에 있어야 합니다.The Requirements.XML file is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. 이 선택적 파일은 현재 게시된 전체 2013 패키지 스키마에서 변경되지 않은 제한된 DeploymentRequirements.XSD를 사용하여 유효성이 검사됩니다.This optional file is validated using the constrained DeploymentRequirements.XSD, which has no change from current published full 2013 package schema.

파일 공유의 경우 일반적으로 루트 아래에 하위 노드가 포함되지 않을 것으로 예상되므로 이 경우 경고가 기록되지만 필요하지 않은 경우 패키지에서 제외할 수도 있습니다.For file shares, this is expected to normally include no child nodes under the root and as such can also be excluded from the package if not required, although a warning will be logged in this case.

RootObjectMap.XMLRootObjectMap.XML

RootObjectMap.XML 파일은 CreateMigrationJob의 azureContainerManifestUri 매개 변수로 정의되는 Azure Blob 저장소 컨테이너의 루트에 있어야 합니다.The RootObjectMap.XML file is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. 이 필수 파일은 현재 게시된 전체 2013 패키지 스키마에서 일부 제한된 변경 사항이 있는 제한된 DeploymentRootObjectMap.XSD 를 사용하여 유효성을 검사합니다.This required file is validated using the constrained DeploymentRootObjectMap.XSD, which has some limited changes from current published full 2013 package schema. 포함할 가장 일반적인 RootObject은(는) 목록 유형의 단일 개체입니다.The most common RootObject that will be included will be a single object of type List. 이 항목의 ID는 대상 목록의 목록 ID여야 하며 마이그레이션이 성공하려면 ParentWebID이(가) 이 목록을 포함하는 상위 대상 웹의 ID와 일치해야 합니다.The ID for this item should be the List ID for the target list, and the ParentWebID should match the ID of the parent target web containing this list in order for migration to be successful. 이 개체의 ID, WebUrl 및 URL 값도 매니페스트에 나와 있는 관련 구조와 일치해야 합니다.XML 파일입니다.The ID, WebUrl, and Url values of this object must also match the related structure laid out in the Manifest.XML file.

SystemData.XMLSystemData.XML

SystemData.XML 파일은 CreateMigrationJob의 azureContainerManifestUri 매개 변수에 의해 정의된 Azure Blob Store 컨테이너의 루트에 있어야 합니다.The SystemData.XML file is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. 이 필수 파일은 현재 게시된 전체 2013 패키지 스키마에서 변경되지 않은 제한된 DeploymentSystemData.XSD 를 사용하여 유효성을 검사합니다.This required file is validated using the constrained DeploymentSystemData.XSD, which has no change from current published full 2013 package schema.

SchemaVersion 정보는 대상 팜의 현재 빌드 및 데이터베이스 버전인 "15.0.0.0"을 참조할 것으로 예상되며, SiteVersion 값은 항상 대상 사이트 모음 UIVersion과(대개 일반적으로는 "15")와 일치해야 합니다.The SchemaVersion information is expected to reference the current Build and DatabaseVersion of the target farm, a Version of “15.0.0.0”, and the SiteVersion value is expected to always match the target site collection UIVersion (that is, most commonly this will be “15”). 각각 Manifest.XML 파일이 ManifestFile개 항목 내에 이 파일에 나열되어야 합니다.Each Manifest.XML file for the package is expected to be listed in this file within the ManifestFile entries.

마이그레이션 코드로 불변 상태로 남아 있어야 하는 종속 개체를 정의하는 시스템 개체도 여기에 나열되어야 가져오기 작업의 올바른 동작을 보장할 수 있습니다.The SystemObjects that define dependent objects that should remain immutable by the migration code should also be listed here to ensure correct behavior of the import operation. 다음은 파일 공유 기반 가져오기의 SystemObjects.XML 파일에 있는 공통 개체의 예입니다. 여기서 ID는 각 패키지마다 다를 수 있으며 URL도 다를 수 있습니다.The following is an example of the common objects in the SystemObjects.XML file from a file share based import, noting that the IDs are expected to be different for each package, and the URLs may be different.

표 1: SystemData.XML 파일 예제Table 1: Example SystemData.XML file

<?xml version="1.0" encoding="utf-8"?>
<SystemData xmlns="urn:deployment-systemdata-schema">
  <SchemaVersion Version="15.0.0.0" Build="16.0.3111.1200" DatabaseVersion="11552" SiteVersion="15" />
  <ManifestFiles>
    <ManifestFile Name="Manifest.xml" />
  </ManifestFiles>
  <SystemObjects>
    <SystemObject Id="34321c39-3254-4bd1-b749-c99e16d1f4ab" Type="Folder" Url="/personal/username" />
    <SystemObject Id="9efb9686-baab-432d-a192-858ac34c073f" Type="Web" Url="/personal/username" />
    <SystemObject Id="e8ec714f-91a0-4c6f-9926-08328c8b3e05" Type="List" Url="/personal/username/Documents/deleteme2" />
    <SystemObject Id="a05e1f95-5712-4cc2-958c-31cf0a2cfb62" Type="List" Url="/personal/username/_catalog/users" />
  </SystemObjects>
  <RootWebOnlyLists />
</SystemData>

UserGroupMap.XMLUserGroupMap.XML

UserGroupMap.XML 파일은 CreateMigrationJob의 azureContainerManifestUri 매개 변수에 의해 정의된 Azure Blob Store 컨테이너의 루트에 있어야 합니다.The UserGroupMap.XML file is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. 이 필수 파일은 현재 게시된 전체 2013 패키지 스키마에서 변경되지 않은 제한된 DeploymentUserGroupMap.XSD 를 사용하여 유효성을 검사합니다.This required file is validated using the constrained DeploymentUserGroupMap.XSD, which has no change from current published full 2013 package schema.

UserGroupMap.XML 파일에 사용자 또는 그룹 항목이 포함되어 있지 않을 수 있지만, 이렇게 하면 가져오는 동안 작성자 또는 보안 정보가 채워지지 않으며 이 경우 경고가 기록됩니다.The UserGroupMap.XML file may not contain any User or Group entries but doing so will prevent author or security information from being populated during import and warnings will be logged in this case. 사용자의 로그인 및 SID 값은 SharePoint Online의 값과 일치하도록 조정하거나 계정이 더 이상 존재하지 않아야 하는 경우 가져오기 작업 중 조회 실패 및 추가 둔화를 방지하기 위해 IsDeleted = “true”(으)로 나열할 수 있습니다.Login and SID values for users must be either adjusted to match the values in SharePoint Online, or if the account no longer should exist can be listed as IsDeleted = “true” to prevent lookup failures and additional slowdown during the import operation.

ViewFormsList.XMLViewFormsList.XML

ViewForms.XML 파일이 포함된 경우 CreateMigrationJob의 azureContainerManifestUri 매개 변수에 의해 정의된 Azure Blob Store 컨테이너의 루트에 있어야 합니다.The ViewForms.XML file, if included, is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. 이 선택적 파일은 현재 게시된 전체 2013 패키지 스키마에서 변경되지 않은 제한된 DeploymentViewFormsList.XSD 를 사용하여 유효성이 검사됩니다.This optional file is validated using the constrained DeploymentViewFormsList.XSD, which has no change from current published full 2013 package schema.

파이프라인에 대한 가져오기 패키지에는 목록 또는 문서 라이브러리의 필드 또는 뷰가 포함되어 있지 않으므로 ViewFormsList.XML 파일에는 일반적으로 루트 아래에 하위 노드가 포함되지 않으므로 이 경우 경고가 기록될 수 있지만 필요하지 않은 경우 패키지에서 제외할 수도 있습니다.Since an import package for the pipeline does not include defining fields or views on a list or document library, the ViewFormsList.XML file will normally include no child nodes under the root and as such can also be excluded from the package if not required, although a warning may be logged in this case.

로깅Logging

가져오기 파이프라인이 생성하는 로그는 오류와 경고를 포함하여 고장이 발생하는 시기와 위치를 정확히 파악할 수 있도록 컴퓨터에 의해 쉽게 구문 분석되어야 하며, 소비자 또는 ISV에 고장이 발생한 위치와 이유를 알려줍니다.The logs that the import pipeline creates must be easily parsed by machine with a goal of being able to pinpoint when and where failures occur, including errors and warnings, and will tell the consumer or the ISV where and why the failure occurred.

완료되면 URI에 지정된 SAS 토큰이 쓰기 액세스를 허용하므로 이러한 로그가 azureContainerManifestUri 위치에 복사됩니다.Upon completion, these logs will be copied to the azureContainerManifestUri location as the SAS token specified in the URI allows write access. 대상 사이트 컬렉션의 "_카탈로그/유지관리 로그" 위치에 텍스트 파일로 동일한 출력 로그도 배치됩니다.The same output logs are also placed at the “_catalogs/Maintenance Logs” location of the target site collection as a text file. 로그는 작업이 완료되고 대기열에서 제거된 후에만 대상 위치로 복사됩니다.The logs will only be copied to the destination locations once the job has finished and removed from the queue.

가져오기 경고 또는 오류의 하위 집합만 포함하는 경고 및 오류 파일과 함께 전체 가져오기 로그와 같은 여러 로그 유형을 포함할 수 있습니다.Several log types can be included such as the full import log, along with warning and error files that contain only the subset of import warnings or errors respectively. 로그 파일에는 datetime개의 고유한 스탬프와 job id개의 스탬프가 있어 가져오기 시도마다 더 나은 디버깅 목적으로 고유한 로그를 가질 수 있습니다.Log files have unique datetime and job id stamps to allow each attempted import event to have a unique log for better debugging purposes.

"디스크 발송" 옵션을 사용한 변경사항Changes for those using the "Ship Disk" option

마이그레이션 API를 사용하려면 Azure에 임시 저장소 컨테이너가 있어야 합니다.To use the Migration API, you must have a temporary storage container in Azure. 임시 저장소로 파일을 업로드할 때 모든 파일의 속성으로 체크섬이 필요합니다.When uploading files into the temporary storage, a checksum is required as a property on every file. 15GB보다 큰 파일의 경우 QuickX 또는 해시를 사용하여 이 작업을 수행합니다(아래 예 참조).For files larger than 15GB, this is done using QuickXorHash (see example below). 2GB 이하 파일의 경우 모든 파일의 속성으로 MD5가 필요합니다.For files 2 GB or smaller, MD5 is required as a property on every file.

그러나 하드 드라이브의 데이터를 전송할 때 이 속성은 자동으로 할당되지 않습니다.However, when shipping the data on hard drives this property doesn’t get assigned automatically. 해결 방안으로, 우리는 모든 파일에 대해 체크섬이 매니페스트의 일부로 전달될 수 있도록 마이그레이션 API를 조정했습니다.As a work around, we have adapted the Migration API to allow the checksum to be passed for every file as part of the manifest. 이는 데이터를 암호화할 때 IV 값에도 적용됩니다.This also applies for IV values when encrypting the data.

MD5는 Azure에서 업로드될 때가 생성되지 않고 원본에 생성되므로 Microsoft는 원본 MD5에 대해 직접 파일의 무결성을 확인할 수 있습니다.Since the MD5 is generated at the source instead of at the upload time in Azure, Microsoft can confirm the integrity of the file directly against the source MD5.

해당 Azure Blob 컨테이너에 저장되는 내용What is stored in those Azure Blob Containers?

마이그레이션 API를 사용하려면 컨텐츠 전달 및 로그 및 대기열 보고용 Azure 컨테이너가 필요합니다.The Migration API requires the Azure Container for content passing and also for log and queue reporting. 다음과 같이 요약하여 분할할 수 있습니다.It can be split down as a summary as follows:

콘텐츠Content 매니페스트Manifest
파일 및 폴더Files and folders XML 파일XML files

manifest.xml에는 두 개의 새로운 선택적 매개 변수가 있습니다.There are two new optional parameters in manifest.xml:

  • QuickXorHashQuickXorHash
  • MD5HashMD5Hash
  • InitializationVectorInitializationVector

패키지 준비Preparing the package

마이그레이션 작업을 호출하는 방법은 변경되지 않으며 패키지 생성만 변경하면 됩니다.The method for calling the migration job doesn’t change; only the package generation needs to be changed.

매니페스트 컨테이너에서 한 파일의 이름은 manifest.xml입니다.In the Manifest container one file is named Manifest.xml. 파일 노드에 QuickXorHash, MD5Hash* 및 InitializationVector 의 두 가지 선택적 특성이 추가되었습니다.There are two optional attributes added to the file node: QuickXorHash, MD5Hash* and InitializationVector.

15GB가 넘는 파일의 예:Example for files over 15 GB:


<?xml version="1.0" encoding="utf-8"?> 

<SPObjects xmlns="urn:deployment-manifest-schema"> 

  <SPObject Id="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" ObjectType="SPFolder" ParentId="d43a7f16-e50b-4591-861f-684e78e89e12" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents"> 

    <Folder Id="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" Url="Shared Documents" Name="Shared Documents" ParentFolderId="d43a7f16-e50b-4591-861f-684e78e89e12" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" ContainingDocumentLibrary="a69654d6-eb09-4638-aa6b-a7e8ff86f555" TimeCreated="2021-01-06T18:50:15" TimeLastModified="2021-01-06T18:50:15" SortBehavior="1" /> 

  </SPObject> 

  <SPObject Id="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ObjectType="SPDocumentLibrary" ParentId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents"> 

    <DocumentLibrary Id="a69654d6-eb09-4638-aa6b-a7e8ff86f555" BaseTemplate="DocumentLibrary" RootFolderId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" RootFolderUrl="/Shared Documents" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Title="Documents" HasUniqueRoleAssignments="true"> 

      <ContentTypes /> 

    </DocumentLibrary> 

  </SPObject> 

  <SPObject Id="aef2bb11-7ee8-4343-87cd-5938d260e647" ObjectType="SPFile" ParentId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents/MyFile.txt"> 

    <File Url="Shared Documents/MyFile.txt" Id="aef2bb11-7ee8-4343-87cd-5938d260e647" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Name="MyFile.txt" ListItemIntId="1" ListId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ParentId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" TimeCreated="2021-01-06T18:43:38" TimeLastModified="2018-06-07T17:54:28" Version="1.0" FileValue="MyFile.txt" FileSize="17662712" Author="1" ModifiedBy="1" MD5Hash="qVBFIb8MJLzT5INrE4XcDQ==" Checksum="3k59aOUae2xygD5B/jtxY4x0Xko=" /> 

  </SPObject> 

  <SPObject Id="52e75f2f-e8d7-4c6d-bf06-3b98d8429e0f" ObjectType="SPListItem" ParentId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents/MyFile.txt"> 

    <ListItem FileUrl="Shared Documents/MyFile.txt" DocType="File" ParentFolderId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" Order="100" Id="52e75f2f-e8d7-4c6d-bf06-3b98d8429e0f" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentListId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" Name="MyFile.txt" DirName="/Shared Documents" IntId="1" DocId="aef2bb11-7ee8-4343-87cd-5938d260e647" Version="1.0" Author="1" ModifiedBy="1" TimeLastModified="2018-06-07T17:54:28" TimeCreated="2021-01-06T18:43:38" ModerationStatus="Approved"> 

      <Fields /> 

    </ListItem> 

  </SPObject> 

</SPObjects> 

2GB 미만 파일의 예:Example for files under 2 GB:

<File … MD5Hash="CXPP/MWYxY87NjjnLZrFg==" InitializationVector="4WlC5zQK0r9s39LoB2w==" />

모범 사례 및 특별 언급Best Practices and Special Mentions

패키지 크기Package size

API가 15GB 파일을 지원하는 경우에도 최대 250MB 또는 250개 항목의 패키지 크기를 권장합니다(먼저 제공되는 항목에 따라 다름).Even if the API support 15 GB files, we recommend package sizes of up to 250 MB OR 250 items (depending which one comes first). 권장 크기 제한보다 큰 파일이 있는 경우 해당 파일을 자체 패키지로 보내야 합니다.If you have a file larger than that recommended size limit, then you should send it in its own package. 버전에도 동일하게 적용되며, 각 버전은 크기 제한 및 항목 수에 따라 계산됩니다.The same applies to versions; each version counts against the size limit and item count. 또한 파일의 모든 버전은 동일한 패키지에 있어야 합니다.Additionally, all the versions of a file should be in the same package.

파일 크기File size

현재 가져오기 파이프라인은 최대 크기 15GB 의 개별 파일을 지원합니다.Currently, the import pipeline supports individual files of 15 GB maximum size.

압축되지 않은 패키지만 지원됩니다.Only uncompressed packages are supported

가져오기 파이프라인이 압축된 패키지를 지원하지 않습니다.The import pipeline does not support compressed packages. 파일 내용은 매니페스트 및 관련 설명 XML 파일과 다른 Azure 저장소 컨테이너에 저장해야 합니다.The file content must be stored in a different Azure Storage container from the manifest and related descriptive XML files. 이는 마이그레이션의 양쪽 끝에서 처리 시간의 오버헤드를 방지(압축 및 압축 해제)하고 패키지 생성 및 수정을 용이하게 하기 위한 것입니다.This is to prevent the overhead of processing time on both ends of the migration (to compress and decompress), and to ease package creation and modification. 압축 파일(예: zip 보관 파일)은 내용이 아닌 보관으로 가져오기 패키지에서 참조되는 한 지원됩니다.Compression of individual files such as into zip archives is supported as long as they are referenced in the import package as the archive itself, not the contents.

API는 여러 파일 버전 가져오기를 지원합니다.API supports import of multiple file versions

가져오기 패키지는 SharePoint 내에서 적용되는 일반 제한까지 파일의 여러 버전(주요 및 부 버전)에 대한 참조가 있을 수 있습니다.Import packages can have references to multiple versions of a file, major and minor, up to regular limits imposed within SharePoint. SPO에 이미 있는 버전이라도 해당 파일의 각 버전을 패키지에 포함시키는 것이 중요합니다.It is important that each version of that file be included in the package even if some of the versions already exist in SPO.

API는 식별자 보존을 지원합니다.API supports preservation of identifiers

가져오기 패키지 내에서 사용되는 식별자는 가져오기 중에 내용을 식별하는 데 사용됩니다.The identifiers used within the import package explicitly are used during import to identify content. 이렇게 하면 원본 환경에서 문서 라이브러리 컨텐츠에 대한 기존 식별자를 보존할 수 있습니다.This allows preservation of existing identifiers for document library contents from a source environment. 그러나 가져오기 패키지 생성 또는 변환 중에 패키지가 대상 웹 및 목록 식별자를 명시적으로 참조해야 하는 복잡성도 부과합니다.However, it also imposes a complexity during import package creation or transformation that mandates that the package explicitly reference the target web and list identifiers. 내용 유형 식별자, 파일/폴더 항목 GUID 및 목록 항목 정수 식별자는 가져오는 동안 모두 보존됩니다.Content type identifiers, file/folder item GUIDs, and list item integer identifiers are all preserved during import. 패키지에 잘못된 식별자가 지정되면 가져오기가 실패합니다.If incorrect identifiers are specified in the package, import will fail.

또한 식별자 보존으로 인해 가져오기 이벤트는 다른 패키지를 사용하여 연속적인 반복에서 잠재적으로 수행될 수 있으며, 식별자가 변경되지 않은 경우 항목이 위치 내에서 이동될 수 있습니다.Additionally, due to identifier preservation, import events can potentially be done in successive iterations using different packages, allowing items to potentially move in location if their identifiers have not changed.

덮어쓰기 API입니다.This is an overwrite API

가져오기 파이프라인은 파일 및 목록 항목 메타데이터의 버전 데이터 가져오기를 지원하지만, 지금 현재 파일을 제출한 다음 변경 사항과 함께 동일한 파일을 다시 제출하면 가져오기 프로세스는 원본 및 모든 버전을 삭제하고 가져올 현재 패키지의 버전에 포함된 버전으로 교체합니다.The import pipeline does support import of versioning data on files and list item metadata, but as of now if you submit a file and then resubmit the same file with changes the import process will delete and replace the original and all versions with the ones included in the ones in the current package being imported.

활성-활성 시나리오를 지원하지 않습니다.We do not support Active-Active scenario

즉, 마이그레이션이 끝날 때까지 대상 사이트가 사용자에 대해 비활성 상태로 남아 있어야 합니다.This means we expect that the target site will remain non-active for users until the migration is over. 최종 사용자의 다운타임을 줄이기 위해 최종 마이그레이션 이벤트까지 소스를 읽기 쓰기 상태로 유지할 수 있지만 마이그레이션이 완료되면 사용자가 새 SPO 대상을 사용하기 시작하고 이전 저장소를 사용하지 않도록 스위치가 있어야 합니다.The source may be kept in a read write state until the final migration event, as a method of reducing downtime for end users, but once the migration is complete there should be a switch for the users to start using their new SPO destinations and stop using the previous repository.

Azure의 사용 권한Permissions in Azure

원본 블럽의 불변성을 보장하기 위해 가져오기 파이프라인은 파일 컨테이너에 대해 읽기 및 목록 액세스 플래그만 설정된 SAS 키를 수락합니다.To ensure immutability of source blobs, the import pipeline will accept a SAS key with only the Read and List access flags set for the File container. 마찬가지로 가져오기 파이프라인에는 가져오기 작업이 끝날 때 로그 파일을 다시 쓸 수 있도록 매니페스트 컨테이너에 대한 읽기, 목록 및 쓰기 액세스 권한이 있는 SAS 키가 필요합니다.Likewise, the import pipeline requires a SAS key with Read, List, and Write access for the Manifest container so that we can write back log files at the end of the import operation. 이러한 기준이 충족되지 않으면 작업 생성 중에 파이프라인이 해당 기준을 거부합니다.If these criteria are not met, the pipeline will reject it during job creation.

성공적으로 가져오려면 Azure의 모든 파일에 스냅샷이 생성되어야 합니다.All files in Azure must have snapshot created to import successfully

소스 블럽의 의도하지 않은 파일 수정을 방지하기 위해 Azure 내에서 소스 블럽에 대해 생성된 스냅샷이 있는 경우에만 가져오기 파이프라인이 파일을 가져옵니다.To prevent unintended file modification of the source blobs, the import pipeline will only import files if they have a snapshot created for them within Azure. 그렇지 않으면 가져오기 파이프라인이 이 상태의 파일을 건너뛰고 오류를 발생시킵니다.If they do not, then the import pipeline will skip the files in this state and throw errors. 가져오기 파이프라인은 가져올 때 사용할 수 있는 파일의 최신 스냅샷을 사용합니다.The import pipeline will use the latest snapshot of the file available at the time of import.

보안 및 암호화Security and encryption

가져오기 파이프라인이 Azure Blob Storage 보안 모델을 그대로 사용하고 있습니다.The import pipeline is using Azure Blob Storage security model as is. 이는 다른 Azure 컨테이너와 차별화되는 Azure 컨테이너에 대해서는 특별한 처리를 하지 않을 것임을 의미합니다.This means we will not do any special treatment for those Azure containers that would differentiate from any other Azure containers. 또한 가져오기 파이프라인은 현재 고객의 콘텐츠에 대한 암호화 키를 허용하지 않습니다.Additionally, the import pipeline currently does not accept encryption keys for content from the customer. 암호화된 모든 콘텐츠는 UI를 통해 환경으로 암호화된 파일이 업로드된 것과 마찬가지로 SharePoint에서 나열할 수 있지만 인덱싱할 수 없는 불투명한 파일로 처리됩니다.Any encrypted content will be treated as opaque files that SharePoint may list, but be unable to index, the same as if encrypted files were uploaded through the UI to the environment.

이벤트 및 이벤트 처리기Events and event handlers

가져오기 파이프라인을 사용하면 이벤트 핸들러를 목록 항목에서 참조할 수 있지만 현재 목록 수준에서 이벤트 핸들러를 정의할 수는 없습니다.The import pipeline allows event handlers to be referenced on list items but doesn’t allow defining event handlers at the list level at this time. 항목을 가져올 때 가져오기 파이프라인이 이벤트를 실행하지 않으므로 기존 이벤트 핸들러는 가져오기 이벤트로 인해 실행되지 않습니다.The import pipeline does not fire events as items are imported, so existing event handlers will not fire due to the import event.

사용자 결정Resolving Users

마이그레이션 API에서 UserGroup.xml에 제공된 로그인을 사용하여 사용자를 확인할 수 없고 시스템 ID가 제공되지 않은 경우:If the Migration API was unable to resolve a user using the login provided in the UserGroup.xml and no System ID is provided, then:

  1. 이 사용자는 패키지 내 관련 메타데이터(작성자, 편집기 등)에서 "시스템 계정"으로 바뀝니다.This user will be replaced by “System Account” in the associated metadata within the package (author, editor etc.).
  2. Import Logs(로그 가져오기) – "사용자를 'user@contoso.com'으로 확인하지 못함"에 경고가 보고됩니다.A warning will be reported in the ImportLogs – “Failed to ensure user 'user@contoso.com'”

마이그레이션 API가 UserGroup.xml에 제공된 로그인을 사용하여 사용자를 확인할 수 없고 시스템 ID가 제공된 경우(내부 AD의 사용자 SID) 다음 작업을 수행합니다.If the migration API was unable to resolve a user using the login provided in the UserGroup.xml and the System ID is provided (which is the SID for the user in the on-premises AD), then:

  1. 제공된 로그인 및 SystemId가 포함된 새 삭제된 사용자가 생성되어 패키지 내의 관련 메타데이터에 사용됩니다.A new deleted user with the provided login and SystemId is created and is used in the associated metadata within the package.
  2. ImportLogs에 "SiteUsers에서 사용자 'user@contoso.com'특성을 검색하지 못했습니다. 값을 전달하기 위해 후퇴”라는 경고가 보고됩니다.A warning will be reported in the ImportLogs- “Failed to retrieve user 'user@contoso.com' attributes from the SiteUsers; falling back to pass in values”

부록Appendices

정의된 약어Acronyms Defined

두문자어Acronym 정의Definition
BOT 타이머 작업을 실행하는 SharePoint 서버SharePoint server running timer jobs
CDBCDB 사이트 모음 및 콘텐츠가 포함된 콘텐츠 데이터베이스Content database, containing site collections and content
CFECFE 콘텐츠 팜 프런트 엔드 서버Content farm front-end server
SPOSPO SharePoint OnlineSharePoint Online
ABSABS Azure Blob StorageAzure Blob Storage

유용한 리소스Helpful Resources

가져오기 패키지 보안 구조 관련 작업Working with import package security structures

이 섹션에서는 권한에 대한 보안을 포함하는 내보내기 패키지에 포함된 기능에 대한 간략한 개요를 설명합니다.This section covers a brief overview of what is contained within an export package that includes security with regard to permissions. 이를 통해 시스템은 사용자 및 그룹 구성원 자격과 역할 및 특정 할당(더 깊은 하위 개체에서 재정의되지 않는 경우 개체 수준 및 하위 수준에서 설정된 고유한 권한)을 확인할 수 있습니다.This can allow the system to determine user and group membership along with roles, and specific assignments (unique permissions set at the object level and its children unless overridden at a deeper child object).

패키지 파일의 보안 식별자를 해석하는 방법How to interpret the security identifiers in the package files

UserGroup.xml 파일은 내보낸 웹 내의 모든 사용자 및 그룹을 정의합니다.UserGroup.xml file defines all users and groups within the exported web(s). 이 파일의 항목은 다음을 수행합니다.The items within this file do the following:

  • 사용자 개체에는 특정 보안 원칙을 도메인 그룹으로 식별하고 로그인하며 보안 원칙의 기본 64 시스템 ID(SID)를 포함하여 특정 사용자에 대한 정보가 포함됩니다.User objects include the information about specific users, including identification of a specific security principle as a domain group or not, login, and the base 64 encoded SystemId (SID) of the security principle.
  • 그룹 개체에는 특정 그룹에 대한 정보와 해당 그룹의 직접 구성원 목록이 포함됩니다.Group objects include the information about specific groups and the direct membership list of that group.
  • 그룹 개체의 소유자 값과 그룹 개체 내의 구성원 개체의 사용자 ID 값은 각각 다른 사용자 또는 그룹 개체의 다른 ID 값에 매핑됩니다.Owner values on group objects and UserId values on member objects within group objects map to other ID values of other user or group objects respectively.

표 2: 사용자 그룹 맵에 주석을 단 사용자 및 그룹Table 2: Users and Groups annotated in UserGroupMap

<UserGroupMap xmlns="urn:deployment-usergroupmap-schema">
  <Users>
    <User Id="1" Name="John Doe" Login="DOMAIN\JDoe" Email="DJoe@contoso.com"
    IsDomainGroup="false" IsSiteAdmin="true" SystemId="AQUAAAAAAAUVAAAAXSj1f9U62DVDVOAqToYSAA==" IsDeleted="false" Flags="0" />
    <User Id="2" Name="Jane Smith" Login="DOMAIN\JSmith" Email="jsmith@contoso.com"
    IsDomainGroup="false" IsSiteAdmin="true" SystemId="AQUAAAAAAAUVAAAAXSj1f9U62DVDVOAqdUwNAA==" IsDeleted="false" Flags="0" />
    …
  </Users>
  <Groups>
    <Group Id="3" Name="Temp Group" Description="A Temp Group" Owner="2" OwnerIsUser="true" OnlyAllowMembersViewMembership="true">
      <Member UserId="2" />
    </Group>
    <Group Id="4" Name="Temp Group 2" Description="Another Temp Group" Owner="2" OwnerIsUser="false" RequestToJoinLeaveEmailSetting="JSmith@contoso.com" OnlyAllowMembersViewMembership="true">
      <Member UserId="1" />
      <Member UserId="2" />
    </Group>
    …
  </Groups>
</UserGroupMap>

Manifest.xml 에는 내보낸 웹의 모든 콘텐츠에 대한 메타데이터가 포함되어 있습니다.Manifest.xml contains the metadata about all the content within the exported web(s). 이 파일의 항목은 다음을 수행합니다.The items within this file do the following:

  • 역할 개체에는 웹에서 정의된 역할 목록이 포함됩니다.Roles objects include the list of defined roles on the web.
  • 역할 개체는 ID, 내부 사용 권한 마스크 플래그 및 디스플레이 정보를 포함하여 개별 역할을 정의합니다.Role objects define the individual role, including ID, internal permissions rights mask flags and display information.
    • RoleId 값은 Role 객체의 식별자를 정의합니다.RoleId values define the identifiers of the Role objects.
    • PermMask 값에는 권한 마스크 플래그가 포함됩니다.PermMask values contain the rights mask flags.
  • 역할 할당 개체에는 고유한 권한 목록(역할 할당 개체)이 포함됩니다.RoleAssignments objects include the list of unique permissions (RoleAssignment objects).
  • 역할 할당 개체에는 고유한 할당 개체(있는 경우)의 목록이 포함됩니다.RoleAssignment objects include the list of distinct Assignment objects (if any).
  • 개별 역할 할당 개체에는 개별 사용자 또는 그룹의 실제 멤버 자격과 해당 역할이 포함됩니다.Individual RoleAssignment objects contain the actual membership of one distinct user or group and their actual Role.
    • RoleId 값은 Role 개체의 RoleId 값에 매핑됩니다.RoleId values map to the RoleId values of the Role objects.
    • PrincipalId 값은 각각 UserGroups.xml에서 사용자 또는 그룹 개체의 ID 값에 매핑됩니다.PrincipalId values map to Id values of user or group objects respectively in UserGroups.xml.

표 3: 매니페스트에 주석이 달린 역할 및 역할 할당Table 3: Roles and RoleAssignments annotated in manifest

<SPObjects xmlns="urn:deployment-manifest-schema">
  …
  <SPObject Id="0b3c1b13-b260-453c-ac8d-8053a537d610" ObjectType="DeploymentRoles" ParentId="203e30e2-1139-4adf-b545-e74235f105c2" ParentWebId="203e30a2-1139-4acf-b535-e74235f105c2" ParentWebUrl="/teams/temp">
    <Roles>
      <Role RoleId="1073751825" Title="Test Role" Description="This is a test role" PermMask="206292717568" Hidden="true" RoleOrder="160" Type="1" />
      <Role RoleId="1073751826" Title="Test Role 2" Description="This is another test role" PermMask="756052856929" Hidden="false" RoleOrder="128" Type="2" />
      …
    </Roles>
  </SPObject>
  <SPObject Id="373ea0ba-107a-4a78-9563-bc642f9ab14d" ObjectType="DeploymentRoleAssignments" ParentId="203e30e2-1139-4adf-b545-e74235f105c2" ParentWebId="203e30a2-1139-4acf-b535-e74235f105c2" ParentWebUrl="/teams/temp">
    <RoleAssignments>
      <RoleAssignment ScopeId="ffcab9b9-94ef-4701-e6d9-19a370760e1e" RoleDefWebId="203e11c2-1139-4abe-b534-e74235f106c2" RoleDefWebUrl="teams/temp" ObjectId="9f743aaf-65f9-473e-0c37-37f147960560" ObjectType="1" ObjectUrl="teams/temp/IWConvertedForms" AnonymousPermMask="0" />
      <RoleAssignment ScopeId="c3f564f3-62cd-4b25-8da4-2da7722402ab" RoleDefWebId="203e30a2-1139-4acf-b535-e74255e105c2" RoleDefWebUrl="teams/temp" ObjectId="2b9b0a32-51fb-4af8-a218-c90f63fd1de4" ObjectType="1" ObjectUrl="teams/temp/Relationships List" AnonymousPermMask="0">
        <Assignment RoleId="1073751825" PrincipalId="5" />
        <Assignment RoleId="1073751825" PrincipalId="6" />
        <Assignment RoleId="1073751826" PrincipalId="4" />
        <Assignment RoleId="1073751828" PrincipalId="1" />
      </RoleAssignment>
      …
    </RoleAssignments>
  </SPObject>
  …
</SPObjects>

제약된 XSD 구조Constrained XSD structures

아래에는 공식 SharePoint 설명서에서 찾을 수 있는 원래 2013 전체 스키마와 다른 경우 가져오기 파이프라인에서 패키지 유효성 검사에 사용되는 XSD 파일이 포함되어 있습니다.Included below are the XSD files used for package validation in the import pipeline, when different than the original 2013 full schema that can be found at official SharePoint documentation.

DeploymentExportSettings.XSDDeploymentExportSettings.XSD

표 4: 제약된 DeploymentExportSettings.XSDTable 4: Constrained DeploymentExportSettings.XSD

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="urn:deployment-exportsettings-schema" elementFormDefault="qualified" 
  xmlns="urn:deployment-exportsettings-schema" 
  xmlns:mstns="urn:deployment-exportsettings-schema" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!-- Guid SimpleType definition -->
  <xs:simpleType name="Guid">
    <xs:restriction base="xs:string"></xs:restriction>
  </xs:simpleType>

  <!-- Used for SPExportObjects -->
  <xs:simpleType name="SPDeploymentObjectType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Folder" />
      <xs:enumeration value="List" />
      <xs:enumeration value="ListItem" />
      <xs:enumeration value="File" />
    </xs:restriction>
  </xs:simpleType>

  <!-- Used for SPExportObjects -->
  <xs:simpleType name="SPIncludeDescendants">
    <xs:restriction base="xs:string">
      <xs:enumeration value="None" />
      <xs:enumeration value="Content" />
      <xs:enumeration value="All" />
    </xs:restriction>
  </xs:simpleType>

  <!-- From SPDeploymentSettings -->
  <xs:simpleType name="SPIncludeSecurity">
    <xs:restriction base="xs:string">
      <xs:enumeration value="None" />
      <xs:enumeration value="WssOnly" />
      <xs:enumeration value="All" />
    </xs:restriction>
  </xs:simpleType>

  <!-- From SPExportSettings -->
  <xs:simpleType name="SPIncludeVersions">
    <xs:restriction base="xs:string">
      <xs:enumeration value="LastMajor" />
      <xs:enumeration value="CurrentVersion" />
      <xs:enumeration value="LastMajorAndMinor" />
      <xs:enumeration value="All" />
    </xs:restriction>
  </xs:simpleType>

  <!-- From SPExportSettings -->
  <xs:simpleType name="SPExportMethodType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ExportAll" />
      <xs:enumeration value="ExportChanges" />
    </xs:restriction>
  </xs:simpleType>

  <!-- This defines that the XML can contain 0-N instances of the -->
  <!-- SPExportObjects element -->
  <xs:complexType name="SPExportSettings">
    <xs:sequence>
      <xs:element name="ExportObjects" type="SPExportObjectCollection" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>

    <!-- SPDeploymentSettings -->
    <xs:attribute name="SiteUrl" type="xs:string" use="required" />
    <xs:attribute name="FileLocation" type="xs:string" />
    <xs:attribute name="BaseFileName" type="xs:string" />
    <xs:attribute name="IncludeSecurity" type="SPIncludeSecurity" />

    <!-- SPExportSettings -->
    <xs:attribute name="IncludeVersions" type="SPIncludeVersions" />
    <xs:attribute name="ExportMethod" type="SPExportMethodType" />
    <xs:attribute name="ExportChangeToken" type="xs:string" />
    <xs:attribute name="ExportPublicSchema" type="xs:boolean" default="true" />
    <xs:attribute name="ExportFrontEndFileStreams" type="xs:boolean" default="true" />
    <xs:attribute name="ExcludeDependencies" type="xs:boolean" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPExportObjectCollection">
    <xs:sequence>
      <xs:element name="DeploymentObject" type="SPExportObject" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SPExportObject">
    <!-- SPDeploymentObject -->
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="Type" type="SPDeploymentObjectType" />
    <xs:attribute name="ParentId" type="Guid" />

    <!-- SPExportObject -->
    <xs:attribute name="Url" type="xs:string" />
    <xs:attribute name="ExcludeChildren" type="xs:boolean" />
    <xs:attribute name="IncludeDescendants" type="SPIncludeDescendants" />
    <xs:attribute name="ExportChangeToken" type="xs:string" />
  </xs:complexType>

  <!--This defines that the XML can contain 0-N instances of the ExportSettings element-->
  <xs:element name="ExportSettings" type="SPExportSettings" />
</xs:schema>

DeploymentLookupListMap.XSDDeploymentLookupListMap.XSD

현재 게시된 전체 2013 패키지 스키마와 변경된 사항은 없습니다.There is no change from current published full 2013 package schema.

DeploymentManifest.XSDDeploymentManifest.XSD

표 5: 제약된 DeploymentManifest.XSDTable 5: Constrained DeploymentManifest.XSD
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="urn:deployment-manifest-schema" elementFormDefault="qualified" 
  xmlns="urn:deployment-manifest-schema" 
  xmlns:mstns="urn:deployment-manifest-schema" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!-- From CoreDefinitions.xsd -->
  <xs:simpleType name="TRUEFALSE">
    <xs:restriction base="xs:string">
      <xs:enumeration value="TRUE" />
      <xs:enumeration value="FALSE" />
      <xs:enumeration value="true" />
      <xs:enumeration value="false" />
    </xs:restriction>
  </xs:simpleType>

  <!-- Guid SimpleType definition -->
  <xs:simpleType name="Guid">
    <xs:restriction base="xs:string"></xs:restriction>
  </xs:simpleType>

  <!-- SPGenericObjectCollection definition -->
  <xs:complexType name="SPGenericObjectCollection">
    <xs:sequence>
      <xs:element name="SPObject" type="SPGenericObject" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- Generic complex Type definition that wraps a Sharepoint top-level element -->
  <xs:complexType name="SPGenericObject">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="List" type="SPList" />
        <xs:element name="DocumentLibrary" type="SPDocumentLibrary" />
        <xs:element name="ListItem" type="SPListItem" />
        <xs:element name="Folder" type="SPFolder" />
        <xs:element name="File" type="SPFile" />
        <xs:element name="ContentType" type="SPContentType" />
        <xs:element name="UserX" type="DeploymentUserX" />
        <xs:element name="GroupX" type="DeploymentGroupX" />
        <xs:element name="Roles" type="DeploymentRoles" />
        <xs:element name="RoleX" type="DeploymentRoleX" />
        <xs:element name="RoleAssignments" type="DeploymentRoleAssignments" />
        <xs:element name="RoleAssignmentX" type="DeploymentRoleAssignmentX" />
      </xs:choice>
    </xs:sequence>

    <xs:attribute name="ObjectType" type="SPObjectType" />
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="ParentId" type="Guid" />
    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="IsDeleted" type="xs:boolean" />
    <xs:attribute name="IsSiteRename" type="xs:boolean" />
    <xs:attribute name="ParentWebId" type="Guid" />
    <xs:attribute name="ParentWebUrl" type="xs:string" use="optional" />
    <xs:attribute name="ContentTypeId" type="xs:string" use ="optional" />
    <xs:attribute name="Url" type="xs:string" />
  </xs:complexType>

  <xs:simpleType name="SPDictionaryEntryValueType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="String" />
      <xs:enumeration value="Integer" />
      <xs:enumeration value="Time" />
      <xs:enumeration value="StringVector" />
      <xs:enumeration value="Boolean" />
      <xs:enumeration value="FileSystemTime" />
      <xs:enumeration value="IntVector" />
      <xs:enumeration value="Double" />
      <xs:enumeration value="LongText" />
      <xs:enumeration value="Empty" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="SPDictionaryEntryAccess">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ReadOnly" />
      <xs:enumeration value="ReadWrite" />
    </xs:restriction>
  </xs:simpleType>

  <!-- Enumeration of all the top-level serialized Sharepoint Types -->
  <xs:simpleType name="SPObjectType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SPList" />
      <xs:enumeration value="SPDocumentLibrary" />
      <xs:enumeration value="SPListItem" />
      <xs:enumeration value="SPFolder" />
      <xs:enumeration value="SPFile" />
      <xs:enumeration value="SPContentType" />
      <xs:enumeration value="SPDocumentTemplate" />
      <xs:enumeration value="DeploymentUserX" />
      <xs:enumeration value="DeploymentGroupX" />
      <xs:enumeration value="DeploymentRoles" />
      <xs:enumeration value="DeploymentRoleX" />
      <xs:enumeration value="DeploymentRoleAssignments" />
      <xs:enumeration value="DeploymentRoleAssignmentX" />
    </xs:restriction>
  </xs:simpleType>

  <!-- Enumeration of all the non-top level serialized Sharepoint Types -->
  <xs:simpleType name="OtherObjectType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SPFileVersion" />
      <xs:enumeration value="SPListEvent" />
      <xs:enumeration value="SPListItemVersion" />
      <xs:enumeration value="SPModerationInfo" />
    </xs:restriction>
  </xs:simpleType>

  <!-- DeploymentRole definition -->
  <xs:complexType name="DeploymentRole">
    <xs:attribute name="RoleId" type="xs:string" use="required" />
    <xs:attribute name="Title" type="xs:string" use="required" />
    <xs:attribute name="Description" type="xs:string" use="optional" />
    <xs:attribute name="PermMask" type="xs:string" use="required" />
    <xs:attribute name="Hidden" type="xs:boolean" use="required" />
    <xs:attribute name="RoleOrder" type="xs:string" use="optional" />
    <xs:attribute name="Type" type="xs:string" use="optional" />
  </xs:complexType>

  <!-- DeploymentRoles definition -->
  <xs:complexType name="DeploymentRoles">
    <xs:sequence>
      <xs:element name="Role" type="DeploymentRole" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- DeploymentAssignment definition -->
  <xs:complexType name="DeploymentAssignment">
    <xs:attribute name="RoleId" type="xs:string" use="required" />
    <xs:attribute name="PrincipalId" type="xs:string" use="required" />
  </xs:complexType>

  <!-- DeploymentRoleAssignment Definition -->
  <xs:complexType name="DeploymentRoleAssignment">
    <xs:sequence>
      <xs:element name="Assignment" type="DeploymentAssignment" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>

    <xs:attribute name="ScopeId" type="xs:string" use="required" />
    <xs:attribute name="RoleDefWebId" type="xs:string" use="required" />
    <xs:attribute name="RoleDefWebUrl" type="xs:string" use="required" />
    <xs:attribute name="ObjectId" type="xs:string" use="required" />
    <xs:attribute name="ObjectType" type="xs:string" use="required" />
    <xs:attribute name="ObjectUrl" type="xs:string" use="required" />
    <xs:attribute name="AnonymousPermMask" type="xs:string" />
  </xs:complexType>

  <xs:complexType name="DeploymentRoleAssignments">
    <xs:sequence>
      <xs:element name="RoleAssignment" type="DeploymentRoleAssignment" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPProperty definition -->
  <xs:complexType name="DictionaryEntry">
    <xs:attribute name="Name" type="xs:string" use="required" />
    <xs:attribute name="Value" type="xs:string" use="optional" />
    <xs:attribute name="Value2" type="xs:string" use="optional" />
    <xs:attribute name="Id" type="Guid" use="optional" />
    <xs:attribute name="Type" type="SPDictionaryEntryValueType" default="String" use="optional" />
    <xs:attribute name="Access" type="SPDictionaryEntryAccess" default="ReadWrite" use="optional" />
  </xs:complexType>

  <!-- Dictionary definition -->
  <xs:complexType name="Dictionary">
    <xs:sequence>
      <xs:element name="Property" type="DictionaryEntry" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPAttachment definition -->
  <xs:complexType name="SPAttachment">
    <xs:sequence>
      <xs:element name="Properties" type="Dictionary" minOccurs="0" />
    </xs:sequence>

    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="DirName" type="xs:string" />
    <xs:attribute name="Url" type="xs:string" />
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="ParentWebId" type="Guid" />

    <!-- Map to file on disk -->
    <xs:attribute name="FileValue" type="xs:string" />

    <xs:attribute name="MetaInfo" type="xs:string" use="optional" />

    <xs:attribute name="Author" type="xs:string" use="optional" />
    <xs:attribute name="ModifiedBy" type="xs:string" use="optional" />
    <xs:attribute name="TimeCreated" type="xs:dateTime" use="optional" />
    <xs:attribute name="TimeLastModified" type="xs:dateTime" use="optional" />

    <!-- Case where it fails at export time but too late to ignore -->
    <xs:attribute name="FailureMessage" type="xs:string" use="optional" />
  </xs:complexType>

  <!-- SPAttachmentCollection definition -->
  <xs:complexType name="SPAttachmentCollection">
    <xs:sequence>
      <xs:element name="Attachment" type="SPAttachment" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPLink definition -->
  <xs:complexType name="SPLink">
    <xs:sequence></xs:sequence>
    <xs:attribute name="TargetId" type="Guid" use="required" />
    <xs:attribute name="TargetUrl" type="xs:string" use="required" />
    <xs:attribute name="IsDirty" type="xs:boolean" use="required" />
    <xs:attribute name="WebPartId" type="Guid" use="optional" />
    <xs:attribute name="LinkNumber" type="xs:int" use="optional" />
    <xs:attribute name="Type" type="xs:unsignedByte" use="optional" />
    <xs:attribute name="Security" type="xs:unsignedByte" use="optional" />
    <xs:attribute name="Dynamic" type="xs:unsignedByte" use="optional" />
    <xs:attribute name="ServerRel" type="xs:boolean" use="optional" />
    <xs:attribute name="Level" type="xs:unsignedByte" use="optional" />
    <xs:attribute name="Search" type="xs:string" use="optional" />
  </xs:complexType>

  <!-- SPLinkCollection definition -->
  <xs:complexType name="SPLinkCollection">
    <xs:sequence>
      <xs:element name="Link" type="SPLink" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- AnonymousState definition -->
  <xs:simpleType name="AnonymousState">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Disabled" />
      <xs:enumeration value="Enabled" />
      <xs:enumeration value="On" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPModerationStatusType definition -->
  <xs:simpleType name="SPModerationStatusType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Approved" />
      <xs:enumeration value="Denied" />
      <xs:enumeration value="Pending" />
      <xs:enumeration value="Draft" />
      <xs:enumeration value="Scheduled" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPModerationInformation definition -->
  <xs:complexType name="SPModerationInformation">
    <xs:attribute name="Comment" type="xs:string" />
    <xs:attribute name="ModerationStatus" type="SPModerationStatusType" />
  </xs:complexType>

  <!-- SPBaseType definition -->
  <xs:simpleType name="SPBaseType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="UnspecifiedBaseType" />
      <xs:enumeration value="GenericList" />
      <xs:enumeration value="DocumentLibrary" />
      <xs:enumeration value="Unused" />
      <xs:enumeration value="DiscussionBoard" />
      <xs:enumeration value="Survey" />
      <xs:enumeration value="Issue" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPListTemplateType definition -->
  <xs:simpleType name="SPListTemplateType">
    <xs:restriction base="xs:string"></xs:restriction>
  </xs:simpleType>

  <!-- DraftVisibilityType definition -->
  <xs:simpleType name="DraftVisibilityType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Reader" />
      <xs:enumeration value="Author" />
      <xs:enumeration value="Approver" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPEventHostType definition -->
  <xs:simpleType name="SPEventHostType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Site" />
      <xs:enumeration value="Web" />
      <xs:enumeration value="List" />
      <xs:enumeration value="ListItem" />
      <xs:enumeration value="ContentType" />
      <xs:enumeration value="Feature" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPEventReceiverSynchronization definition -->
  <xs:simpleType name="SPEventReceiverSynchronization">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Default" />
      <xs:enumeration value="Synchronous" />
      <xs:enumeration value="Asynchronous" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPEventReceiverType definition -->
  <xs:simpleType name="SPEventReceiverType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ItemAdding" />
      <xs:enumeration value="ItemUpdating" />
      <xs:enumeration value="ItemDeleting" />
      <xs:enumeration value="ItemCheckingIn" />
      <xs:enumeration value="ItemCheckingOut" />
      <xs:enumeration value="ItemUncheckingOut" />
      <xs:enumeration value="ItemAttachmentAdding" />
      <xs:enumeration value="ItemAttachmentDeleting" />
      <xs:enumeration value="ItemFileMoving" />
      <xs:enumeration value="ItemVersionDeleting" />
      <xs:enumeration value="FieldAdding" />
      <xs:enumeration value="FieldUpdating" />
      <xs:enumeration value="FieldDeleting" />
      <xs:enumeration value="ListAdding" />
      <xs:enumeration value="ListDeleting" />
      <xs:enumeration value="SiteDeleting" />
      <xs:enumeration value="WebDeleting" />
      <xs:enumeration value="WebMoving" />
      <xs:enumeration value="WebAdding" />
      <xs:enumeration value="GroupAdding" />
      <xs:enumeration value="GroupUpdating" />
      <xs:enumeration value="GroupDeleting" />
      <xs:enumeration value="GroupUserAdding" />
      <xs:enumeration value="GroupUserDeleting" />
      <xs:enumeration value="RoleDefinitionAdding" />
      <xs:enumeration value="RoleDefinitionUpdating" />
      <xs:enumeration value="RoleDefinitionDeleting" />
      <xs:enumeration value="RoleAssignmentAdding" />
      <xs:enumeration value="RoleAssignmentDeleting" />
      <xs:enumeration value="InheritanceBreaking" />
      <xs:enumeration value="InheritanceResetting" />
      <xs:enumeration value="ItemAdded" />
      <xs:enumeration value="ItemUpdated" />
      <xs:enumeration value="ItemDeleted" />
      <xs:enumeration value="ItemCheckedIn" />
      <xs:enumeration value="ItemCheckedOut" />
      <xs:enumeration value="ItemUncheckedOut" />
      <xs:enumeration value="ItemAttachmentAdded" />
      <xs:enumeration value="ItemAttachmentDeleted" />
      <xs:enumeration value="ItemFileMoved" />
      <xs:enumeration value="ItemFileConverted" />
      <xs:enumeration value="ItemFileTransformed" />
      <xs:enumeration value="ItemVersionDeleted" />
      <xs:enumeration value="FieldAdded" />
      <xs:enumeration value="FieldUpdated" />
      <xs:enumeration value="FieldDeleted" />
      <xs:enumeration value="ListAdded" />
      <xs:enumeration value="ListDeleted" />
      <xs:enumeration value="SiteDeleted" />
      <xs:enumeration value="WebDeleted" />
      <xs:enumeration value="WebMoved" />
      <xs:enumeration value="WebProvisioned" />
      <xs:enumeration value="WebRestored" />
      <xs:enumeration value="GroupAdded" />
      <xs:enumeration value="GroupUpdated" />
      <xs:enumeration value="GroupDeleted" />
      <xs:enumeration value="GroupUserAdded" />
      <xs:enumeration value="GroupUserDeleted" />
      <xs:enumeration value="RoleDefinitionAdded" />
      <xs:enumeration value="RoleDefinitionUpdated" />
      <xs:enumeration value="RoleDefinitionDeleted" />
      <xs:enumeration value="RoleAssignmentAdded" />
      <xs:enumeration value="RoleAssignmentDeleted" />
      <xs:enumeration value="InheritanceBroken" />
      <xs:enumeration value="InheritanceReset" />
      <xs:enumeration value="EmailReceived" />
      <xs:enumeration value="ContextEvent" />
      <xs:enumeration value="InvalidReceiver" />
      <xs:enumeration value="WorkflowCompleted" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="DefaultItemOpen">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Browser" />
      <xs:enumeration value="PreferClient" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPList definition -->
  <xs:complexType name="SPList">
    <xs:sequence >
      <xs:choice minOccurs="0" maxOccurs="11">
        <xs:element name="ContentTypes" type="SPContentTypeCollection" minOccurs="0" maxOccurs="1" />
        <xs:element name="DeletedContentTypes" type="ListDeletedContentTypes" minOccurs="0" maxOccurs="1" />
      </xs:choice>
    </xs:sequence>

    <xs:attribute name="Id" type="Guid" use="required" />
    <xs:attribute name="Title" type="xs:string" use="required" />

    <xs:attribute name="RootFolderId" type="Guid" />
    <xs:attribute name="RootFolderUrl" type="xs:string" use="required" />
    <xs:attribute name="ParentWebId" type="Guid" use="required" />
    <xs:attribute name="ParentWebUrl" type="xs:string" use="optional" />

    <xs:attribute name="BaseType" type="SPBaseType" />
    <xs:attribute name="BaseTemplate" type="SPListTemplateType" use="required" />
  </xs:complexType>

  <xs:complexType name="SPFieldCollection" mixed="true">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="FieldRef" type="SPFieldLink" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="Field" type="SPField" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SPField">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip" />
    </xs:sequence>
    <xs:attribute name="ID" type="Guid" />
    <xs:attribute name="FieldId" type="Guid" use="optional" />
    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="Value" type="xs:string" />
    <xs:attribute name="DisplayName" type="xs:string" />
    <xs:attribute name="RowOrdinal" type="xs:int" />
    <xs:attribute name="RowOrdinal2" type="xs:int" use="optional" />
    <xs:attribute name="Type" type="xs:string" />
    <xs:attribute name="ColName" type="xs:string" />
    <xs:attribute name="ColName2" type="xs:string" use="optional" />
    <xs:attribute name="Title" type="xs:string" use="optional" />
    <xs:attribute name="Description" type="xs:string" use="optional" />
    <xs:attribute name="DefaultValue" type="xs:string" use="optional" />
    <xs:attribute name="DefaultFormula" type="xs:string" use="optional" />
    <xs:attribute name="FromBaseType" type="xs:string" use="optional" />
    <xs:attribute name="Sealed" type="xs:string" />
    <xs:attribute name="CanToggleHidden" type="xs:string" use="optional" />
    <xs:attribute name="DisplaySize" type="xs:string" use="optional" />
    <xs:attribute name="Required" type="xs:string" use="optional" />
    <xs:attribute name="ReadOnly" type="xs:string" use="optional" />
    <xs:attribute name="Hidden" type="xs:string" use="optional" />
    <xs:attribute name="Direction" type="xs:string" use="optional" />
    <xs:attribute name="IMEMode" type="xs:string" use="optional" />
    <xs:attribute name="SortableBySchema" type="xs:string" use="optional" />
    <xs:attribute name="Sortable" type="xs:string" use="optional" />
    <xs:attribute name="FilterableBySchema" type="xs:string" use="optional" />
    <xs:attribute name="Filterable" type="xs:string" use="optional" />
    <xs:attribute name="FilterableNoRecurrenceBySchema" type="xs:string" use="optional" />
    <xs:attribute name="FilterableNoRecurrence" type="xs:string" use="optional" />
    <xs:attribute name="Reorderable" type="xs:string" use="optional" />
    <xs:attribute name="Format" type="xs:string" use="optional" />
    <xs:attribute name="FillInChoice" type="xs:string" use="optional" />
    <xs:attribute name="SchemaXml" type="xs:string" use="optional" />
    <xs:attribute name="JSLink" type="xs:string" use="optional" />
    <xs:attribute name="CAMLRendering" type="xs:string" use="optional" />
    <xs:attribute name="ServerRender" type="xs:string" use="optional" />
    <xs:attribute name="ListItemMenu" type="xs:string" use="optional" />
    <xs:attribute name="ListItemMenuAllowed" type="xs:string" use="optional" />
    <xs:attribute name="LinkToItem" type="xs:string" use="optional" />
    <xs:attribute name="LinkToItemAllowed" type="xs:string" use="optional" />
    <xs:attribute name="CalloutMenu" type="xs:string" use="optional" />
    <xs:attribute name="CalloutMenuAllowed" type="xs:string" use="optional" />
    <!-- Label definition  -->
    <xs:attribute name="ListDefaultCompliancetagWrittenTime" type="xs:dateTime" use="optional" />
    <xs:attribute name="ListDefaultComplianceTagUserId" type="xs:int" use="optional" />
    <!-- ListDefaultComplianceFlags is a Flags dependes on the Label, if the Label has Keep or KeepAndDelete ( that will have the 0x01 bit set). If the Label is a record label, that will have 0x01 and 0x04 set -->
    <xs:attribute name="ListDefaultComplianceFlags" type="xs:int" use="optional" />
    <xs:attribute name="ListDefaultComplianceTag" type="xs:string" use="optional" />
    <!-- end of Label definition  -->
    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <!-- FieldDataCollection definition -->
  <xs:complexType name="FieldDataCollection">
    <xs:sequence>
      <xs:element name="Field" type="DictionaryEntry" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPEventReceiverDefinitionCollection definition -->
  <xs:complexType name="SPEventReceiverDefinitionCollection">
    <xs:sequence>
      <xs:element name="EventReceiver" type="SPEventReceiverDefinition" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPEventReceiverDefinition definition -->
  <xs:complexType name="SPEventReceiverDefinition">
    <xs:attribute name="Id" type="Guid" use="required" />
    <xs:attribute name="Name" type="xs:string" use="required" />
    <xs:attribute name="WebId" type="Guid" use="required" />
    <xs:attribute name="HostId" type="Guid" use="required" />
    <xs:attribute name="HostType" type="SPEventHostType" use="required" />
    <xs:attribute name="Synchronization" type="SPEventReceiverSynchronization" use="optional" />
    <xs:attribute name="Type" type="SPEventReceiverType" use="required" />
    <xs:attribute name="SequenceNumber" type="xs:int" use="required" />
    <xs:attribute name="Url" type="xs:string" use="optional" />
    <xs:attribute name="Assembly" type="xs:string" use="optional" />
    <xs:attribute name="Class" type="xs:string" use="optional" />
    <xs:attribute name="SolutionId" type="Guid" use="optional" />
    <xs:attribute name="Data" type="xs:string" use="optional" />
    <xs:attribute name="Filter" type="xs:string" use="optional" />
    <xs:attribute name="Credential" type="xs:int" use="optional" />
    <xs:attribute name="ItemId" type="xs:int" use="optional" />
  </xs:complexType>

  <!-- ListDeletedContentTypes definition -->
  <xs:complexType name="ListDeletedContentTypes">
    <xs:sequence>
      <xs:element name="DeletedContentType" type="DeletedContentType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- DeletedContentType definition -->
  <xs:complexType name="DeletedContentType">
    <xs:attribute name="ContentTypeId" type="xs:string" use="required" />
  </xs:complexType>

  <!-- SPDocumentLibrary definition -->
  <xs:complexType name="SPDocumentLibrary">
    <xs:complexContent>
      <xs:extension base="SPList">
        <xs:attribute name="DocumentTemplateUrl" type="xs:string" />
        <xs:attribute name="IsCatalog" type="xs:boolean" />
        <xs:attribute name="ThumbnailSize" type="xs:int" />
        <xs:attribute name="WebImageHeight" type="xs:int" />
        <xs:attribute name="WebImageWidth" type="xs:int" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- SPFolder definition -->
  <xs:complexType name="SPFolder">
    <xs:sequence>
      <xs:element name="Properties" type="Dictionary" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="Url" type="xs:string" />
    <xs:attribute name="ParentFolderId" type="Guid" />
    <xs:attribute name="ParentWebId" type="Guid" />
    <xs:attribute name="ParentWebUrl" type="xs:string" use="optional" />
    <xs:attribute name="ContainingDocumentLibrary" type="Guid" />
    <xs:attribute name="WelcomePageUrl" type="xs:string" use="optional" />
    <xs:attribute name="WelcomePageParameters" type="xs:string" use="optional" />
    <xs:attribute name="ListItemIntId" type="xs:int" use="optional" />
    <xs:attribute name="Author" type="xs:string" use="optional" />
    <xs:attribute name="ModifiedBy" type="xs:string" use="optional" />
    <xs:attribute name="TimeCreated" type="xs:dateTime" use="optional" />
    <xs:attribute name="TimeLastModified" type="xs:dateTime" use="optional" />
    <xs:attribute name="ProgId" type="xs:string" use="optional" />
    <xs:attribute name="SortBehavior" type="xs:string" use="optional" />
  </xs:complexType>

  <!-- SPFileVersion Collection definition -->
  <xs:complexType name="SPFileVersionCollection">
    <xs:sequence>
      <xs:element name="File" type="SPFile" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPListItemVersion Collection definition -->
  <xs:complexType name="SPListItemVersionCollection">
    <xs:sequence>
      <xs:element name="ListItem" type="SPListItem" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPFileVersionEvent Collection definition -->
  <xs:complexType name="SPFileVersionEventCollection">
    <xs:sequence>
      <xs:element name="VersionEvent" type="SPFileVersionEvent" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SPFileVersionEvent">
    <xs:attribute name="Id" type="xs:int" />
    <xs:attribute name="UIVersion" type="xs:int" />
    <xs:attribute name="Type" type="xs:int" />
    <xs:attribute name="Time" type="xs:dateTime" />
    <xs:attribute name="UserId" type="xs:int" />
  </xs:complexType>

  <!-- SPFile definition -->
  <xs:complexType name="SPFile">
    <xs:sequence>
      <xs:element name="Properties" type="Dictionary" minOccurs="0" />
      <xs:element name="Versions" type="SPFileVersionCollection" minOccurs="0" maxOccurs="1" />
      <xs:element name="Links" type="SPLinkCollection" minOccurs="0" maxOccurs="1" />
      <xs:element name="EventReceivers" type="SPEventReceiverDefinitionCollection" minOccurs="0" maxOccurs="1" />
      <xs:element name="VersionEvents" type="SPFileVersionEventCollection" minOccurs="0" maxOccurs="1" />
    </xs:sequence>

    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="Url" type="xs:string" />
    <xs:attribute name="ListItemIntId" type="xs:int" />
    <xs:attribute name="InDocumentLibrary" type="xs:boolean" />

    <xs:attribute name="ParentWebId" type="Guid" />
    <xs:attribute name="ParentWebUrl" type="xs:string" />

    <xs:attribute name="ParentId" type="Guid" />
    <xs:attribute name="ListId" type="Guid" use="optional" />

    <!-- Map to file on disk -->
    <xs:attribute name="FileValue" type="xs:string" use="optional" />

    <xs:attribute name="CheckinComment" type="xs:string" use="optional" />
    <xs:attribute name="Version" type="xs:string" use="optional" default="1.0" />

    <xs:attribute name="Author" type="xs:string" use="optional" />
    <xs:attribute name="ModifiedBy" type="xs:string" use="optional" />
    <xs:attribute name="TimeCreated" type="xs:dateTime" use="optional" />
    <xs:attribute name="TimeLastModified" type="xs:dateTime" use="optional" />

    <!-- Case where it fails at export time but too late to ignore -->
    <xs:attribute name="FailureMessage" type="xs:string" use="optional" />

    <!-- Setup Path Information -->
    <xs:attribute name="IsGhosted" type="xs:boolean" use="optional" />
    <xs:attribute name="SetupPath" type="xs:string" use="optional" />
    <xs:attribute name="SetupPathUser" type="xs:string" use="optional" />
    <!-- Use: 2, 3, 4 OR 15 -->
    <xs:attribute name="SetupPathVersion" type="xs:byte" default="15" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <!-- Doc Type of List Item -->
  <xs:simpleType name="ListItemDocType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="File" />
      <xs:enumeration value="Folder" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPListItem definition -->
  <xs:complexType name="SPListItem">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="5">
        <xs:element name="Fields" type="SPFieldCollection" minOccurs="0" maxOccurs="1" />
        <xs:element name="Versions" type="SPListItemVersionCollection" minOccurs="0" maxOccurs="1" />
        <xs:element name="Attachments" type="SPAttachmentCollection" minOccurs="0" maxOccurs="1" />
        <xs:element name="Links" type="SPLinkCollection" minOccurs="0" maxOccurs="1" />
        <xs:element name="EventReceivers" type="SPEventReceiverDefinitionCollection" minOccurs="0" maxOccurs="1" />
      </xs:choice>
    </xs:sequence>

    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="DirName" type="xs:string" />
    <xs:attribute name="FileUrl" type="xs:string" use="optional" />
    <xs:attribute name="Version" type="xs:string" use="optional" default="1.0" />
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="IntId" type="xs:int" />
    <xs:attribute name="DocId" type="Guid" use="optional" />

    <xs:attribute name="Author" type="xs:string" use="optional" />
    <xs:attribute name="ModifiedBy" type="xs:string" use="optional" />
    <xs:attribute name="TimeCreated" type="xs:dateTime" use="optional" />
    <xs:attribute name="TimeLastModified" type="xs:dateTime" use="optional" />

    <xs:attribute name="ParentWebId" type="Guid" />
    <xs:attribute name="ParentListId" type="Guid" />
    <xs:attribute name="ParentFolderId" type="Guid" use="optional" />

    <xs:attribute name="ModerationStatus" type="SPModerationStatusType" use="optional" />
    <xs:attribute name="ModerationComment" type="xs:string" use="optional" />
    <xs:attribute name="ContentTypeId" type="xs:string" />
    <xs:attribute name="ProgId" type="xs:string" use="optional" />
    <xs:attribute name="Order" type="xs:float" use="optional" />
    <xs:attribute name="ThreadIndex" type="xs:string" use="optional" />
    <xs:attribute name="UserSolutionActivated" type="xs:boolean" use="optional" />
    <xs:attribute name="DocType" type="ListItemDocType" default="File" />

    <!-- UserInfo -->
    <xs:attribute name="UserLoginName" type="xs:string" use="optional" />
    <xs:attribute name="GroupName" type="xs:string" use="optional" />

    <!-- Case where it fails at export time but too late to ignore -->
    <xs:attribute name="FailureMessage" type="xs:string" use="optional" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPFieldLink">
    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="ID" type="Guid" use="optional" />
    <xs:attribute name="Customization" type="xs:string" use="optional" />
    <xs:attribute name="Default" type="xs:string" use="optional" />
    <xs:attribute name="ColName" type="xs:string" use="optional" />
    <xs:attribute name="ColName2" type="xs:string" use="optional" />
    <xs:attribute name="RowOrdinal" type="xs:int" use="optional" />
    <xs:attribute name="RowOrdinal2" type="xs:int" use="optional" />

    <xs:attribute name="Hidden" type="TRUEFALSE" use="optional" />
    <xs:attribute name="Required" type="TRUEFALSE" use="optional" />
    <xs:attribute name="Explicit" type="xs:string" use="optional" />
    <xs:attribute name="ShowInNewForm" type="xs:string" use="optional" />
    <xs:attribute name="ShowInEditForm" type="xs:string" use="optional" />
    <xs:attribute name="DisplayName" type="xs:string" use="optional" />
    <xs:attribute name="Node" type="xs:string" use="optional" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPXmlDocumentCollection">
    <xs:sequence >
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip" />
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPContentType">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip" />
    </xs:sequence>

    <xs:attribute name="ID" type="Guid" />
    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="Scope" type="xs:string" />
    <xs:attribute name="NextChildByte" type="xs:short" />
    <xs:attribute name="ParentWebId" type="Guid" />
    <xs:attribute name="ListId" type="Guid" use="optional" />
    <xs:attribute name="Description" type="xs:string" use="optional" />
    <xs:attribute name="Hidden" type="TRUEFALSE" use="optional" />
    <xs:attribute name="ReadOnly" type="TRUEFALSE" use="optional" />
    <xs:attribute name="Group" type="xs:string" use="optional" />
    <xs:attribute name="PushDownChanges" type="xs:boolean" use="optional" />
    <xs:attribute name="RequireClientRenderingOnNew" type="xs:string" use="optional" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPContentTypeRef">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip" />
    </xs:sequence>

    <xs:attribute name="ID" type="Guid" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPContentTypeFolder">
    <xs:attribute name="TargetName" type="xs:string" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPContentTypeCollection">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip" />
    </xs:sequence>
  </xs:complexType>

  <!--This defines that the XML can contain 0-N instances of the SPGenericObject element-->
  <xs:element name="SPObjects" type="SPGenericObjectCollection"></xs:element>
</xs:schema>

DeploymentRequirements.XSDDeploymentRequirements.XSD

현재 게시된 전체 2013 패키지 스키마와 변경된 사항은 없습니다.There is no change from current published full 2013 package schema.

DeploymentRootObjectMap.XSDDeploymentRootObjectMap.XSD

표 6: 제약된 DeploymentRootObjectMap.XSDTable 6: Constrained DeploymentRootObjectMap.XSD

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="urn:deployment-rootobjectmap-schema" elementFormDefault="qualified" 
  xmlns="urn:deployment-rootobjectmap-schema" 
  xmlns:mstns="urn:deployment-rootobjectmap-schema" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!-- Guid SimpleType definition -->
  <xs:simpleType name="Guid">
    <xs:restriction base="xs:string"></xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="SPDeploymentObjectType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Folder" />
      <xs:enumeration value="List" />
      <xs:enumeration value="ListItem" />
      <xs:enumeration value="File" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="SPRootObject">
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="Type" type="SPDeploymentObjectType" />
    <xs:attribute name="ParentId" type="Guid" />
    <xs:attribute name="WebUrl" type="xs:string" />
    <xs:attribute name="Url" type="xs:string" />
    <xs:attribute name="IsDependency" type="xs:boolean" />
  </xs:complexType>

  <xs:complexType name="SPRootObjects">
    <xs:sequence>
      <xs:element name="RootObject" type="SPRootObject" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="RootObjects" type="SPRootObjects" />
</xs:schema>

DeploymentSystemData.XSDDeploymentSystemData.XSD

현재 게시된 전체 2013 패키지 스키마의 변경 내용이 없습니다.There is no change from current published full 2013 package schema.

DeploymentUserGroupMap.XSDDeploymentUserGroupMap.XSD

현재 게시된 전체 2013 2013 전체 패키지 스키마 과(와)의 변경 사항은 없습니다.There is no change from current published full 2013 full 2013 package schema.

DeploymentViewFormsList.XSDDeploymentViewFormsList.XSD

현재 게시된 전체 2013 패키지 스키마의 변경 내용이 없습니다.There is no change from current published full 2013 package schema.

샘플: REST를 사용하여 API 호출Sample: Using REST to call the API

https://{site_url}/_api/site/CreateMigrationJobEncrypted

{
  "options": {
    "AES256CBCKey": "000000000000000000000000000000000000000000000000000000="
  },
  "gWebId": "00000000-0000-0000-0000-000000000000",
  "azureContainerSourceUri": "https://<spam><spam>tenant.blob.core.windows.net:443/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<spam><spam>=rw",
  "azureContainerManifestUri": "https://<spam><spam>tenant.blob.core.windows.net:443/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<spam><spam>=rw"
}

컨테이너의 경우:For the container:

https://{site_url}/_api/site/ProvisionMigrationContainers

참고

현재 중국에서 21Vianet이 운영하는 Office 365 사용자는 SharePoint 마이그레이션 도구 를 사용할 수 없습니다.The Migration API is not available for users of Office 365 operated by 21Vianet in China. 데이터 수탁자인 German Telekom 을 사용하여 독일어 클라우드를 사용하는 Office 365 사용자도 사용할 수 없습니다.It is also not available for users of Office 365 with the German cloud using the data trustee, German Telekom. 그러나 데이터 위치가 독일어 데이터 센터에 없는 독일 사용자에게는 지원됩니다.However, it is supported for users in Germany whose data location is not in the German data center.