Flusso di lavoro del processo di caricamento
Il processo di caricamento è costituito da uno o più POST HTTP che utilizzano un jobHandle
comune per correlare l'elaborazione nello stesso processo. Ogni richiesta è codificata multipart/form-data
ed è costituita dalle seguenti parti di modulo:
parte modulo HTTP POST | Descrizione |
---|---|
auth | Obbligatorio. Documento di intestazione di autenticazione XML che specifica le informazioni di autenticazione e client. Vedi Richiedi autenticazione in SOAP. |
file params | Facoltativo. Con ogni richiesta POST puoi includere uno o più file da caricare. Ogni parte di file può includere un parametro filename nell'intestazione Content-Disposition che viene utilizzato come nome di file di destinazione in IPS se non viene specificato alcun parametro uploadPostParams/fileName . |
parte modulo HTTP POST | uploadPostParams, nome elemento | Tipo | Descrizione |
---|---|---|---|
uploadParams (obbligatorio. Un documento XML uploadParams che specifica i parametri di caricamento) | companyHandle | xsd:string | Obbligatorio. Gestisce alla società in cui viene caricato il file. |
uploadParams (obbligatorio. Un documento XML uploadParams che specifica i parametri di caricamento) | jobName | xsd:string | È necessario jobName o jobHandle . Nome del processo di caricamento. |
uploadParams (obbligatorio. Un documento XML uploadParams che specifica i parametri di caricamento) | jobHandle | xsd:string | È necessario jobName o jobHandle . Gestisci un processo di caricamento avviato in una richiesta precedente. |
uploadParams (obbligatorio. Un documento XML uploadParams che specifica i parametri di caricamento) | locale | xsd:string | Facoltativo. Lingua e codice del paese per la localizzazione. |
uploadParams (obbligatorio. Un documento XML uploadParams che specifica i parametri di caricamento) | description | xsd:string | Facoltativo. Descrizione del processo. |
uploadParams (obbligatorio. Un documento XML uploadParams che specifica i parametri di caricamento) | destFolder | xsd:string | Facoltativo. Percorso della cartella di destinazione per il prefisso di una proprietà del nome file, in particolare per i browser e altri client che potrebbero non supportare percorsi completi in un nome file. |
uploadParams (obbligatorio. Un documento XML uploadParams che specifica i parametri di caricamento) | fileName | xsd:string | Facoltativo. Nome del file di destinazione. Sostituisce la proprietà del nome file. |
uploadParams (obbligatorio. Un documento XML uploadParams che specifica i parametri di caricamento) | endJob | xsd:boolean | Facoltativo. Il valore predefinito è false. |
uploadParams (obbligatorio. Un documento XML uploadParams che specifica i parametri di caricamento) | uploadParams | types:UploadPostJob | Facoltativo se si tratta di una richiesta successiva per un processo attivo esistente. Se è presente un processo esistente, uploadParams viene ignorato e vengono utilizzati i parametri di caricamento del processo esistenti. Vedi UploadPostJob |
All'interno del blocco <uploadPostParams>
è presente il blocco <uploadParams>
che indica l'elaborazione dei file inclusi.
Vedi UploadPostJob.
Anche se è possibile presumere che il parametro uploadParams
possa cambiare per singoli file come parte dello stesso processo, non è così. Utilizzare gli stessi uploadParams
parametri per l'intero processo.
La richiesta POST iniziale per un nuovo processo di caricamento deve specificare il parametro jobName
, preferibilmente utilizzando un nome di processo univoco per semplificare il polling dello stato e le query del registro di processo successivi. Ulteriori richieste POST per lo stesso processo di caricamento devono specificare il parametro jobHandle
anziché jobName
, utilizzando il valore jobHandle
restituito dalla richiesta iniziale.
La richiesta POST finale per un processo di caricamento deve impostare il parametro endJob
su true in modo che non vengano creati file POST futuri per questo processo. A sua volta, questo consente il completamento del processo subito dopo l’acquisizione di tutti i file POST. In caso contrario, il processo si interrompe se non vengono ricevute ulteriori richieste POST entro 30 minuti.
Risposta UploadPOST
Per una richiesta POST corretta, il corpo della risposta è un documento XML uploadPostReturn
, come specificato nel file XSD di seguito:
<element name="uploadPostReturn">
<complexType>
<sequence>
<element name="jobHandle" type="xsd:string"/>
</sequence>
</complexType>
</element>
Il jobHandle
restituito viene passato nel parametro uploadPostParams
/ jobHandle
per eventuali richieste POST successive per lo stesso processo. È inoltre possibile utilizzarlo per eseguire il polling dello stato del processo con l'operazione getActiveJobs
o per eseguire una query sui registri del processo con l'operazione getJobLogDetails
.
Se si verifica un errore durante l'elaborazione della richiesta POST, il corpo della risposta è costituito da uno dei tipi di errore API descritti in Errori.
Esempio di richiesta 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--