Importación y exportación de contenidos

Las API Microsoft.SharePoint.Deployment de Windows SharePoint Services 3.0 ofrecen un conjunto de herramientas flexibles para migrar contenido entre sitios web de Windows SharePoint Services. Windows SharePoint Services usa el concepto de paquete de migración de contenido, que puede incluir uno o varios archivos XML, y ofrece un conjunto de API flexibles para exportar e importar paquetes de migración. La función de importación/exportación de contenido del modelo de objeto de implementación le permite exportar no sólo el contenido de sitios web sino también dependencias existentes, como características de seguridad, funciones de usuario, datos sobre versiones, flujos de trabajos y otros metadatos.

El modelo de objetos Microsoft.SharePoint.Deployment está diseñado para funcionar con datos que varían desde todo un sitio web hasta un solo elemento de una lista o biblioteca. Puede seleccionar el nivel de los metadatos que se han de incluir con el contenido migrado, así como elegir si realizar una migración completa o proporcionar sólo una actualización incremental.

Migración de contenido con el modelo de objetos de implementación

Las características de importación/exportación del modelo de objetos de Microsoft.SharePoint.Deployment usan dos objetos clave: Microsoft.SharePoint.Deployment.SPImport y Microsoft.SharePoint.Deployment.SPExport. Sin embargo, antes de ejecutar las operaciones de importación o exportación mediante el uso de estos objetos, primeramente debe especificar la configuración de importación o exportación con los objetos Microsoft.SharePoint.Deployment.SPImportSettings y Microsoft.SharePoint.Deployment.SPExportSettings. A continuación, simplemente realice una llamada al método Run() del objeto SPImport o SPExport , según corresponda.

Ejemplo

En el siguiente código se muestra cómo usar el modelo de objetos de implementación para exportar un sitio de SharePoint desde una ubicación de origen e importarlo a una ubicación de destino.

private void ExportImport(string sourceUrl, string destinationUrl)
{
    string fileName = Export(sourceUrl);
    Log.Comment("Local filename for this export/import is {0}",             fileName);
    Import(destinationUrl, fileName);
}

private string Export(string siteURL)
{
    Microsoft.SharePoint.Deployment.SPExportSettings exportSettings =
        new Microsoft.SharePoint.Deployment.SPExportSettings();
    exportSettings.AutoGenerateDataFileName = true;
    exportSettings.ExportMethod =
        Microsoft.SharePoint.Deployment.SPExportMethodType.ExportAll;
    exportSettings.SiteUrl = siteURL;
    exportSettings.IncludeSecurity =
        Microsoft.SharePoint.Deployment.SPIncludeSecurity.All;
    exportSettings.IncludeVersions =
        Microsoft.SharePoint.Deployment.SPIncludeVersions.All;
    Microsoft.SharePoint.Deployment.SPExport export =
        new Microsoft.SharePoint.Deployment.SPExport(exportSettings);
    Log.Comment("Starting export of URL {0}", siteURL);
    export.Run();
 
    return exportSettings.FileLocation + "\\" +         exportSettings.BaseFileName;
}
 
private void Import(string siteURL, string fileToImport)
{
    Microsoft.SharePoint.Deployment.SPImportSettings importSettings =
        new Microsoft.SharePoint.Deployment.SPImportSettings();
 
    importSettings.BaseFileName =         System.IO.Path.GetFileName(fileToImport);
importSettings.FileLocation =         System.IO.Path.GetDirectoryName(fileToImport);
    importSettings.SiteUrl = siteURL;
    importSettings.RetainObjectIdentity = false;
    importSettings.IncludeSecurity =
        Microsoft.SharePoint.Deployment.SPIncludeSecurity.All;
    importSettings.UpdateVersions =
        Microsoft.SharePoint.Deployment.SPUpdateVersions.Append;
    importSettings.UserInfoDateTime =
        Microsoft.SharePoint.Deployment.SPImportUserInfoDateTimeOption.             ImportAll;
    Microsoft.SharePoint.Deployment.SPImport import =
        new Microsoft.SharePoint.Deployment.SPImport(importSettings);
    Log.Comment("Starting import to URL {0}", siteURL);
    import.Run();
}

Migración de contenido mediante la herramienta de línea de comandos STSADM

La herramienta de línea de comandos STSADM.exe sólo es compatible con operaciones de importación y exportación básicas y sólo es útil al importar o exportar sitios web enteros de SharePoint o al volver a considerar como principal un sitio web. El contenido migrado con esta herramienta no conservará los GUID de los objetos. Recuerde que no puede usar esta utilidad para importar o exportar elementos individuales o listas.

Ejemplo

El siguiente ejemplo ilustra cómo exportar el contenido de un sitio web mediante el uso de la herramienta de línea de comandos STSADM.exe.

stsadm.exe -o export
    -url <URL to be exported>
    -filename <export file name>
         [-overwrite]
    [-includeusersecurity]
    [-haltonwarning]
    [-haltonfatalerror]
    [-nologfile]
    [-versions <1-4>
        1 - Last major version for files and list items (default)
        2 - The current version, either the last major or the last minor
        3 - Last major and last minor version for files and list items
        4 - All versions for files and list items]
    [-cabsize <integer from 1-1024 megabytes>]
    [-quiet]

Nota

Debe usar el parámetro -includeusersecurity para conservar las marcas de tiempo, la información de seguridad y los datos del usuario.

Ejemplo

El siguiente ejemplo ilustra cómo importar el contenido de un sitio web mediante el uso de la herramienta de línea de comandos STSADM.exe.

stsadm.exe -o import
    -url <URL to import to>
    -filename <import file name>
    [-includeusersecurity]
    [-haltonwarning]
    [-haltonfatalerror]
    [-nologfile]
    [-updateversions <1-4>
        1 - Add new versions to the current file (default)
        2 - Overwrite the file and all its versions (delete then insert)
        3 - Ignore the file
        4 - Terminate with conflicts]
    [-quiet]

Ejemplo

El código siguiente proporciona un archivo por lotes de ejemplo para importar y exportar contenido, mediante los valores de configuración más habituales. Puede copiar y pegar el siguiente código en un archivo .bat.

@echo off

if not "%1"=="" goto ExportImport

echo **** Usage
echo This batch file will automatically export the default site collection to a newly created site collection
echo You need to specify the name of the newly created site collection as an argument
echo Example: PrimeIt.bat NewSite
echo The example will create https://localhost/sites/NewSite, and export https://localhost into it, preserving user security.

goto end

:ExportImport
echo ************* Determine the Location to stsadm.exe
if EXIST "%CommonProgramFiles%\Microsoft Shared Debug\Web Server Extensions\12\bin\stsadm.exe" set BinDir=%CommonProgramFiles%\Microsoft Shared Debug\Web Server Extensions\12\bin
if EXIST "%CommonProgramFiles%\Microsoft Shared\Web Server Extensions\12\bin\stsadm.exe" set BinDir=%CommonProgramFiles%\Microsoft Shared\Web Server Extensions\12\bin
echo Determined that the location to stsadm is %BinDir%

@echo on
@echo ************* Backup the root site collection
"%BinDir%\stsadm.exe" -o export -url https://localhost -filename %TEMP%\Export.cab -includeusersecurity -versions 4 -overwrite

@echo ************* Create a destination site
"%BinDir%\stsadm.exe" -o createsite -url https://localhost/sites/%1 -ownerlogin %UserDomain%\%UserName% -owneremail %UserName%@microsoft.com -sitetemplate STS

@echo ************* Import into the new site
"%BinDir%\stsadm.exe" -o import -url https://localhost/sites/%1 -filename %TEMP%\Export.cab -includeusersecurity

@echo off
:end

Vea también

Referencia

Microsoft.SharePoint.Deployment

Otros recursos

Introducción a la migración de contenido