Fluxo de trabalho do trabalho de upload

O trabalho de carregamento consiste em um ou mais POSTs HTTP que usam um jobHandle comum para correlacionar o processamento no mesmo trabalho. Cada solicitação é codificada em multipart/form-data e consiste nas seguintes partes de formulário:

OBSERVAÇÃO
Todas as solicitações de POST para um trabalho de upload devem se originar do mesmo endereço IP.
Parte de formulário do POST do HTTPDescrição
authObrigatório. Um documento de cabeçalho de autenticação XML que especifica informações de autenticação e do cliente. Consulte Solicitar autenticação em SOAP.
file paramsOpcional. Você pode incluir um ou mais arquivos para fazer upload com cada solicitação POST. Cada parte do arquivo pode incluir um parâmetro de nome de arquivo no cabeçalho Content-Disposition usado como nome de arquivo de destino no IPS se nenhum parâmetro uploadPostParams/fileName for especificado.
Parte de formulário do POST do HTTPnome do elemento uploadPostParamsTipoDescrição
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento)companyHandlexsd:stringObrigatório. Processe a empresa para a qual o arquivo está sendo carregado.
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento)jobNamexsd:stringjobName ou jobHandle é obrigatório. Nome do trabalho de upload.
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento)jobHandlexsd:stringjobName ou jobHandle é obrigatório. O processamento de um trabalho de upload foi iniciado em uma solicitação anterior.
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento)localexsd:stringOpcional. Idioma e código do país para localização.
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento)descriptionxsd:stringOpcional. Descrição da tarefa.
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento)destFolderxsd:stringOpcional. Caminho da pasta de destino para prefixar para uma propriedade de nome de arquivo, especialmente para navegadores e outros clientes que podem não suportar caminhos completos em um nome de arquivo.
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento)fileNamexsd:stringOpcional. Nome do arquivo de destino. Substitui a propriedade do nome de arquivo.
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento)endJobxsd:booleanOpcional. O padrão é falso.
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento)uploadParamstypes:UploadPostJobOpcional se esta for uma solicitação subsequente para um trabalho ativo existente. Se houver um trabalho existente, uploadParams será ignorado e os parâmetros de carregamento de trabalho existentes serão usados. Consulte UploadPostJob

No bloco <uploadPostParams> está o bloco <uploadParams> que designa o processamento dos arquivos incluídos.

Consulte UploadPostJob.

Embora você possa supor que o parâmetro uploadParams possa mudar para arquivos individuais como parte do mesmo trabalho, esse não é o caso. Use os mesmos uploadParams parâmetros para o trabalho inteiro.

A solicitação de POST inicial para um novo trabalho de carregamento deve especificar o parâmetro jobName, de preferência usando um nome de trabalho exclusivo para simplificar a sondagem de status de trabalho subsequente e as consultas de log de trabalho. Solicitações POST adicionais para o mesmo trabalho de carregamento devem especificar o parâmetro jobHandle em vez de jobName, usando o valor jobHandle retornado da solicitação inicial.

A solicitação de POST final para um trabalho de carregamento deve definir o parâmetro endJob como true para que nenhum arquivo futuro seja POST para esse trabalho. Por sua vez, isso permite que a tarefa seja concluída imediatamente após todos os arquivos POSTed serem assimilados. Caso contrário, a tarefa expirará se nenhuma solicitação de POST adicional for recebida em 30 minutos.

Resposta de UploadPOST

Para uma solicitação POST bem-sucedida, o corpo da resposta é um documento XML uploadPostReturn, conforme especificado pelo XSD em:

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

O jobHandle retornado é passado no parâmetro uploadPostParams/ jobHandle para qualquer solicitação POST subsequente para o mesmo trabalho. Você também pode usá-lo para sondar o status do trabalho com a operação getActiveJobs ou para consultar os logs de trabalho com a operação getJobLogDetails.

Se houver um erro ao processar a solicitação POST, o corpo da resposta consistirá em um dos tipos de falha da API, conforme descrito em Falhas.

Exemplo de solicitação 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--