Flujo de trabajo del trabajo de carga

El trabajo de carga consiste en uno o más POST HTTP que utilizan un jobHandle común para correlacionar el procesamiento en el mismo trabajo. Cada solicitud está codificada multipart/form-data y consta de las siguientes partes de formulario:

NOTA
Todas las solicitudes de POST para un trabajo de carga deben proceder de la misma dirección IP.
Parte del formulario del POST HTTPDescripción
authRequerido. Documento XML authHeader que especifica la información de autenticación y de cliente. SOAP Ver Solicitud de autenticación en 🔗.
file paramsOpcional. Puede incluir uno o más archivos para cargar con cada solicitud de POST. Cada parte del archivo puede incluir un parámetro filename en el encabezado Content-Disposition que se utiliza como nombre de archivo de destino en IPS si no se especifica ningún parámetro uploadPostParams/fileName.
Parte del formulario del POST HTTPNombre del elemento uploadPostParamsTipoDescripción
uploadParams (obligatorio). Un documento XML uploadParams que especifica los parámetros de carga)companyHandlexsd:stringRequerido. Identificador de la empresa a la que se carga el archivo.
uploadParams (obligatorio). Un documento XML uploadParams que especifica los parámetros de carga)jobNamexsd:stringSe requiere jobName o jobHandle. Nombre del trabajo de carga.
uploadParams (obligatorio). Un documento XML uploadParams que especifica los parámetros de carga)jobHandlexsd:stringSe requiere jobName o jobHandle. Administrar a un trabajo de carga iniciado en una solicitud anterior.
uploadParams (obligatorio). Un documento XML uploadParams que especifica los parámetros de carga)localexsd:stringOpcional. Código de idioma y país para la localización.
uploadParams (obligatorio). Un documento XML uploadParams que especifica los parámetros de carga)descriptionxsd:stringOpcional. Descripción del trabajo.
uploadParams (obligatorio). Un documento XML uploadParams que especifica los parámetros de carga)destFolderxsd:stringOpcional. Ruta de la carpeta de destino como prefijo de una propiedad de nombre de archivo, especialmente para exploradores y otros clientes que pueden no admitir rutas de acceso completas en un nombre de archivo.
uploadParams (obligatorio). Un documento XML uploadParams que especifica los parámetros de carga)fileNamexsd:stringOpcional. Nombre del archivo de destino. Anula la propiedad filename.
uploadParams (obligatorio). Un documento XML uploadParams que especifica los parámetros de carga)endJobxsd:booleanOpcional. El valor predeterminado es false.
uploadParams (obligatorio). Un documento XML uploadParams que especifica los parámetros de carga)uploadParamstypes:UploadPostJobOpcional si se trata de una solicitud posterior para un trabajo activo existente. Si hay un trabajo existente, uploadParams se omite y se usan los parámetros de carga del trabajo existentes. Ver UploadPostJob

Dentro del bloque <uploadPostParams> está el bloque <uploadParams> que designa el procesamiento de los archivos incluidos.

Consulte UploadPostJob.

Aunque puede suponer que el parámetro uploadParams puede cambiar para archivos individuales como parte del mismo trabajo, no es el caso. Usar los mismos uploadParams parámetros para todo el trabajo.

La solicitud inicial del POST para un nuevo trabajo de carga debe especificar el parámetro jobName, preferiblemente con un nombre de trabajo único para simplificar las consultas subsiguientes de sondeo de estado de trabajo y registro de trabajo. Las solicitudes de POST adicionales para el mismo trabajo de carga deben especificar el parámetro jobHandle en lugar de jobName, utilizando el valor jobHandle devuelto desde la solicitud inicial.

La solicitud final del POST para un trabajo de carga debe establecer el parámetro endJob en true para que no se publiquen archivos futuros para este trabajo. A su vez, esto permite que el trabajo se complete inmediatamente después de ingerir todos los archivos POSTed. De lo contrario, se agota el tiempo de espera del trabajo si no se reciben solicitudes de POST adicionales en un plazo de 30 minutos.

Respuesta de UploadPOST

Para una solicitud de POST correcta, el cuerpo de respuesta es un documento XML uploadPostReturn, como especifica el XSD en lo siguiente:

<element name="uploadPostReturn">
        <complexType>
            <sequence>
                <element name="jobHandle" type="xsd:string"/>
            </sequence>
        </complexType>
    </element>

El jobHandle devuelto se pasa en el parámetro uploadPostParams/ jobHandle para cualquier solicitud de POST posterior para el mismo trabajo. También puede utilizarlo para sondear el estado del trabajo con la operación getActiveJobs o para consultar los registros del trabajo con la operación getJobLogDetails.

Si hay un error al procesar la solicitud del POST, el cuerpo de respuesta consta de uno de los tipos de errores de API como se describe en Errores.

Ejemplo de solicitud de POST

POST /scene7/UploadFile HTTP/1.1
User-Agent: Jakarta Commons-HttpClient/3.1
Host: localhost
Content-Length: 362630
Content-Type: multipart/form-data; boundary=O9-ba7tieRtqA4QRSaVk-eDq6658SPrYfvUcJ

--O9-ba7tieRtqA4QRSaVk-eDq6658SPrYfvUcJ
Content-Disposition: form-data; name="auth"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit

            <authHeader xmlns="http://www.scene7.com/IpsApi/xsd/2014-04-03">
                   <user>sampleuser@test.com</user>
                   <password>*</password>
                   <locale>en-US</locale>
                   <appName>MyUploadServletTest</appName>
                   <appVersion>1.0</appVersion>
                   <faultHttpStatusCode>200</faultHttpStatusCode>
           </authHeader>

--O9-ba7tieRtqA4QRSaVk-eDq6658SPrYfvUcJ
Content-Disposition: form-data; name="uploadParams"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit

            <uploadPostParam xmlns="http://www.scene7.com/IpsApi/xsd/2014-04-03">
                <companyHandle>c|2101</companyHandle>
                <jobName>uploadFileServlet-1376682217351</jobName>
                <uploadParams>
                    <overwrite>true</overwrite>
                    <readyForPublish>true</readyForPublish>
                    <preservePublishState>true</preservePublishState>
                    <createMask>true</createMask>
                    <preserveCrop>true</preserveCrop>
                    <manualCropOptions>
                      <left>500</left>
                      <right>500</right>
                      <top>500</top>
                      <bottom>500</bottom>
                    </manualCropOptions>
                    <photoshopOptions>
                      <process>MaintainLayers</process>
                      <layerOptions>
                        <layerNaming>AppendNumber</layerNaming>
                        <anchor>Northwest</anchor>
                        <createTemplate>true</createTemplate>
                        <extractText>true</extractText>
                        <extendLayers>false</extendLayers>
                      </layerOptions>
                    </photoshopOptions>
                    <emailSetting>None</emailSetting>
                </uploadParams>
            </uploadPostParam>

--O9-ba7tieRtqA4QRSaVk-eDq6658SPrYfvUcJ--
Content-Disposition: form-data; name="file1"; filename="ApiTestCo1/UploadFileServlet1376682217351//1376682217351-1.jpg"
Content-Type: application/octet-stream; charset=ISO-8859-1
Content-Transfer-Encoding: binary
<file bytes ... >
--O9-ba7tieRtqA4QRSaVk-eDq6658SPrYfvUcJ--
Content-Disposition: form-data; name="file2"; filename="ApiTestCo1/UploadFileServlet1376682217351//1376682217351-2.jpg"
Content-Type: application/octet-stream; charset=ISO-8859-1
Content-Transfer-Encoding: binary
<file bytes ... >
--O9-ba7tieRtqA4QRSaVk-eDq6658SPrYfvUcJ--

Ejemplo de respuesta del POST: correcta

HTTP/1.1 200 OK
Content-Type: text/xml;charset=utf-8
Content-Length: 204
Date: Mon, 25 Jul 2016 19:43:38 GMT
Server: Unknown

'1.0' encoding='UTF-8'?><uploadPostReturn xmlns="http://www.scene7.com/IpsApi/xsd/2014-04-03">
  <jobHandle>j|2101||uploadFileServlet-1376682217351|54091</jobHandle>
</uploadPostReturn>

Ejemplo de respuesta del POST: error

HTTP/1.1 200 OK
Content-Type: text/xml;charset=utf-8
Content-Length: 210
Date: Mon, 25 Jul 2016 19:43:38 GMT
Server: Unknown

<?xml version='1.0' encoding='UTF-8'?><tns:authenticationFault xmlns:tns="http://www.scene7.com/IpsApi/xsd"><tns:code>10001</tns:code><tns:reason>Invalid username/password</tns:reason></tns:authenticationFault>
recommendation-more-help