Carga de recursos mediante POST HTTP en el servlet UploadFile

Última actualización: 2023-05-23
  • Creado para:
  • Developer
    Admin

La carga de recursos en Dynamic Media Classic implica una o más solicitudes de POST HTTP que configuran un trabajo para coordinar toda la actividad de registro asociada con los archivos cargados.

Utilice la siguiente URL para acceder al servlet UploadFile:

https://<server>/scene7/UploadFile
NOTA

Todas las solicitudes de POST para un trabajo de carga deben proceder de la misma dirección IP.

Acceso a direcciones URL para regiones de Dynamic Media

Ubicación geográfica

URL de producción

URL de ensayo (se utiliza para el desarrollo y la prueba previos a la producción)

América del Norte

https://s7sps1ssl.scene7.com/scene7/UploadFile

https://s7sps1ssl-staging.scene7.com/scene7/UploadFile

Europa, Oriente Medio, Asia

https://s7sps3ssl.scene7.com/scene7/UploadFile

https://s7sps3ssl-staging.scene7.com/scene7/UploadFile

Japón/Asia-Pacífico

https://s7sps5ssl.scene7.com/scene7/UploadFile

https://s7sps5ssl-staging.scene7.com/scene7/UploadFile

Flujo de trabajo del trabajo de carga

El trabajo de carga consta de uno o más POST HTTP que utilizan un jobHandle para correlacionar el procesamiento en el mismo trabajo. Cada solicitud es multipart/form-data codificado y consta de las siguientes partes del 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 HTTP Descripción
auth Obligatorio. Documento XML authHeader que especifica la información de autenticación y de cliente. Consulte Solicitar autenticación bajo JABÓN.
file params Opcional. Puede incluir uno o más archivos para cargar con cada solicitud de POST. Cada parte del archivo puede incluir un parámetro de nombre de archivo en el encabezado Content-Disposition que se utiliza como nombre de archivo de destino en IPS si no hay uploadPostParams/fileName se ha especificado el parámetro.
Parte del formulario del POST HTTP Nombre del elemento uploadPostParams Tipo Descripción
uploadParams (Se requieren. Un XML uploadParams documento que especifica los parámetros de carga) companyHandle xsd:string Obligatorio. Identificador de la empresa a la que se carga el archivo.
uploadParams (Se requieren. Un XML uploadParams documento que especifica los parámetros de carga) jobName xsd:string Cualquiera jobName o jobHandle es obligatorio. Nombre del trabajo de carga.
uploadParams (Se requieren. Un XML uploadParams documento que especifica los parámetros de carga) jobHandle xsd:string Cualquiera jobName o jobHandle es obligatorio. Administrar a un trabajo de carga iniciado en una solicitud anterior.
uploadParams (Se requieren. Un XML uploadParams documento que especifica los parámetros de carga) locale xsd:string Opcional. Código de idioma y país para la localización.
uploadParams (Se requieren. Un XML uploadParams documento que especifica los parámetros de carga) description xsd:string Opcional. Descripción del trabajo.
uploadParams (Se requieren. Un XML uploadParams documento que especifica los parámetros de carga) destFolder xsd:string Opcional. 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 (Se requieren. Un XML uploadParams documento que especifica los parámetros de carga) fileName xsd:string Opcional. Nombre del archivo de destino. Anula la propiedad filename.
uploadParams (Se requieren. Un XML uploadParams documento que especifica los parámetros de carga) endJob xsd:boolean Opcional. El valor predeterminado es false.
uploadParams (Se requieren. Un XML uploadParams documento que especifica los parámetros de carga) uploadParams types:UploadPostJob Opcional si se trata de una solicitud posterior para un trabajo activo existente. Si hay un trabajo existente, uploadParams se ignora y se utilizan los parámetros de carga de trabajo existentes. Consulte UploadPostJob

Dentro de <uploadPostParams> El bloque es el <uploadParams> que designa el procesamiento de los archivos incluidos.

Consulte UploadPostJob.

Aunque puede suponer que la variable uploadParams Este parámetro puede cambiar para archivos individuales como parte del mismo trabajo, no es el caso. Utilizar lo mismo uploadParams parámetros para todo el trabajo.

La solicitud inicial del POST para un nuevo trabajo de carga debe especificar el 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 lo siguiente jobHandle en lugar de jobName, usando el jobHandle valor devuelto por la solicitud inicial.

La solicitud final del POST para un trabajo de carga debe establecer el endJob parámetro a 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 XML uploadPostReturn , tal como especifica el XSD en el siguiente documento:

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

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

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

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>

En esta página