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:
Parte de formulário do POST do HTTP | Descrição |
---|---|
auth | Obrigató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 params | Opcional. 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 HTTP | nome do elemento uploadPostParams | Tipo | Descrição |
---|---|---|---|
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento) | companyHandle | xsd:string | Obrigató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) | jobName | xsd:string | jobName ou jobHandle é obrigatório. Nome do trabalho de upload. |
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento) | jobHandle | xsd:string | jobName 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) | locale | xsd:string | Opcional. Idioma e código do país para localização. |
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento) | description | xsd:string | Opcional. Descrição da tarefa. |
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento) | destFolder | xsd:string | Opcional. 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) | fileName | xsd:string | Opcional. 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) | endJob | xsd:boolean | Opcional. O padrão é falso. |
uploadParams (Obrigatório. Um documento XML uploadParams especificando os parâmetros de carregamento) | uploadParams | types:UploadPostJob | Opcional 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--