Caricamento delle risorse tramite POST HTTP nel servlet UploadFile

Il caricamento delle risorse in Dynamic Media Classic prevede una o più richieste HTTP POST che impostano un processo per coordinare tutte le attività di registro associate ai file caricati.

Utilizza il seguente URL per accedere al servlet UploadFile:

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

Tutte le richieste POST per un processo di caricamento devono provenire dallo stesso indirizzo IP.

URL di accesso per le aree geografiche di Dynamic Media

Posizione geografica

URL di produzione

URL di staging (da utilizzare per lo sviluppo e il test di pre-produzione)

America del Nord

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

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

Europa, Medio Oriente, Asia

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

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

Giappone/Asia Pacifico

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

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

Flusso di lavoro del processo di caricamento

Il processo di caricamento è costituito da uno o più POST HTTP che utilizzano un jobHandle per correlare l'elaborazione allo stesso processo. Ogni richiesta è multipart/form-data codificato ed è costituito dalle seguenti parti del modulo:

NOTA

Tutte le richieste POST per un processo di caricamento devono provenire dallo stesso indirizzo IP.

Parte modulo HTTP POST Descrizione
auth Obbligatorio. Documento authHeader XML che specifica l'autenticazione e le informazioni client. Vedi Richiedi autenticazione sotto SOAP.
file params Facoltativo. Puoi includere uno o più file da caricare con ogni richiesta POST. Ogni parte di file può includere un parametro del nome del file nell'intestazione Content-Disposition che viene utilizzato come nome del file di destinazione in IPS se no uploadPostParams/fileName è specificato.
Parte modulo HTTP POST nome dell'elemento uploadPostParams Tipo Descrizione
uploadParams (Obbligatorio. XML uploadParams documento che specifica i parametri di caricamento) companyHandle xsd:string Obbligatorio. Gestisci la società in cui viene caricato il file.
uploadParams (Obbligatorio. XML uploadParams documento che specifica i parametri di caricamento) jobName xsd:string O jobName o jobHandle è obbligatorio. Nome del processo di caricamento.
uploadParams (Obbligatorio. XML uploadParams documento che specifica i parametri di caricamento) jobHandle xsd:string O jobName o jobHandle è obbligatorio. Gestisci un processo di caricamento avviato in una richiesta precedente.
uploadParams (Obbligatorio. XML uploadParams documento che specifica i parametri di caricamento) locale xsd:string Facoltativo. Lingua e codice del paese per la localizzazione.
uploadParams (Obbligatorio. XML uploadParams documento che specifica i parametri di caricamento) description xsd:string Facoltativo. Descrizione del lavoro.
uploadParams (Obbligatorio. XML uploadParams documento 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. XML uploadParams documento che specifica i parametri di caricamento) fileName xsd:string Facoltativo. Nome del file di destinazione. Sostituisce la proprietà del nome del file.
uploadParams (Obbligatorio. XML uploadParams documento che specifica i parametri di caricamento) endJob xsd:boolean Facoltativo. Il valore predefinito è false.
uploadParams (Obbligatorio. XML uploadParams documento che specifica i parametri di caricamento) uploadParams types:UploadPostJob Facoltativo se si tratta di una richiesta successiva per un processo attivo esistente. Se esiste un lavoro esistente, uploadParams viene ignorato e vengono utilizzati i parametri di caricamento dei processi esistenti. Vedi UploadPostJob

All'interno di <uploadPostParams> il blocco è <uploadParams> blocco che designa l'elaborazione dei file inclusi.

Vedi UploadPostJob.

Mentre potresti presumere che uploadParams Questo parametro può cambiare per i singoli file come parte dello stesso processo, non è il caso. Usa lo stesso uploadParams parametri per l'intero processo.

La richiesta iniziale di POST per un nuovo processo di caricamento deve specificare la variabile jobName , preferibilmente utilizzando un nome di processo univoco per semplificare il polling dello stato del processo successivo e le query del registro di lavoro. Richieste POST aggiuntive per lo stesso processo di caricamento devono specificare la variabile jobHandle invece di jobName, utilizzando jobHandle valore restituito dalla richiesta iniziale.

La richiesta finale di POST per un processo di caricamento deve impostare il endJob su true in modo che nessun file futuro sia POSTed per questo lavoro. A sua volta, questo consente il completamento del processo subito dopo l’acquisizione di tutti i file POSTed. In caso contrario, il processo si interrompe se non vengono ricevute richieste POST aggiuntive entro 30 minuti.

Risposta UploadPOST

Per una richiesta POST riuscita, il corpo della risposta è un XML uploadPostReturn , come specificato nel file XSD di seguito:

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

La jobHandle restituito nella uploadPostParams/ jobHandle per tutte le richieste successive di POST per lo stesso processo. È inoltre possibile utilizzarlo per il polling dello stato del processo con getActiveJobs o per eseguire una query sui registri processi con il getJobLogDetails funzionamento.

In caso di 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--

Esempio di risposta POST: successo

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>

Esempio di risposta POST - errore

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>

In questa pagina