Hochladen von Assets über HTTP-POSTs in das UploadFile-Servlet uploading-assets-by-way-of-http-posts-to-the-uploadfile-servlet
Das Hochladen von Assets in Dynamic Media Classic umfasst eine oder mehrere HTTP-POST-Anforderungen, die einen Auftrag einrichten, um alle Protokollaktivitäten zu koordinieren, die mit den hochgeladenen Dateien verknüpft sind.
Verwenden Sie die folgende URL, um auf das UploadFile-Servlet zuzugreifen:
https://<server>/scene7/UploadFile
Zugreifen auf URLs für Dynamic Media-Regionen
Workflow des Upload-Auftrags section-873625b9512f477c992f5cdd77267094
Der Upload-Auftrag besteht aus einem oder mehreren HTTP-POSTs, die mit einem gemeinsamen "jobHandle
"-Wert die Verarbeitung mit demselben Auftrag korrelieren. Jede Anforderung ist multipart/form-data
-kodiert und besteht aus den folgenden Formularelementen:
auth
file params
uploadPostParams/fileName
-Parameter angegeben ist.uploadParams
(Erforderlich. Ein XML uploadParams
-Dokument, das die Upload-Parameter angibt)companyHandle
xsd:string
uploadParams
(Erforderlich. Ein XML uploadParams
-Dokument, das die Upload-Parameter angibt)jobName
xsd:string
jobName
oder jobHandle
ist erforderlich. Name des Upload-Auftrags.uploadParams
(Erforderlich. Ein XML uploadParams
-Dokument, das die Upload-Parameter angibt)jobHandle
xsd:string
jobName
oder jobHandle
ist erforderlich. Handle mit einem in einer vorherigen Anfrage gestarteten Upload-Auftrag.uploadParams
(Erforderlich. Ein XML uploadParams
-Dokument, das die Upload-Parameter angibt)locale
xsd:string
uploadParams
(Erforderlich. Ein XML uploadParams
-Dokument, das die Upload-Parameter angibt)description
xsd:string
uploadParams
(Erforderlich. Ein XML uploadParams
-Dokument, das die Upload-Parameter angibt)destFolder
xsd:string
uploadParams
(Erforderlich. Ein XML uploadParams
-Dokument, das die Upload-Parameter angibt)fileName
xsd:string
uploadParams
(Erforderlich. Ein XML uploadParams
-Dokument, das die Upload-Parameter angibt)endJob
xsd:boolean
uploadParams
(Erforderlich. Ein XML uploadParams
-Dokument, das die Upload-Parameter angibt)uploadParams
types:UploadPostJob
uploadParams
ignoriert und die vorhandenen Auftrags-Upload-Parameter werden verwendet. Siehe UploadPostJobInnerhalb des Blocks "<uploadPostParams>
" befindet sich der Block "<uploadParams>
", der die Verarbeitung der enthaltenen Dateien angibt.
Siehe UploadPostJob.
Sie können davon ausgehen, dass sich der Parameter uploadParams
für einzelne Dateien im Rahmen desselben Auftrags ändern kann. Dies ist jedoch nicht der Fall. Verwenden Sie dieselben uploadParams
-Parameter für den gesamten Auftrag.
In der Anfrage zur anfänglichen POST für einen neuen Upload-Auftrag sollte der Parameter jobName
angegeben werden, vorzugsweise mithilfe eines eindeutigen Auftragsnamens, um die nachfolgenden Auftragsstatusabfragen und Auftragsprotokollabfragen zu vereinfachen. Zusätzliche POST-Anforderungen für denselben Upload-Auftrag sollten den Parameter jobHandle
anstelle von jobName
angeben und dabei den aus der ursprünglichen Anfrage zurückgegebenen Wert jobHandle
verwenden.
Die letzte POST für einen Upload-Auftrag sollte den Parameter endJob
auf "true"setzen, damit keine zukünftigen Dateien für diesen Auftrag POSTed werden. Dadurch kann der Auftrag sofort abgeschlossen werden, nachdem alle POSTed-Dateien erfasst wurden. Andernfalls tritt eine Zeitüberschreitung für den Auftrag auf, wenn innerhalb von 30 Minuten keine weiteren POST empfangen werden.
UploadPOST-Antwort section-421df5cc04d44e23a464059aad86d64e
Bei einer erfolgreichen POST-Anfrage ist der Antworttext ein XML uploadPostReturn
-Dokument, wie die XSD im Folgenden angibt:
<element name="uploadPostReturn">
<complexType>
<sequence>
<element name="jobHandle" type="xsd:string"/>
</sequence>
</complexType>
</element>
Die zurückgegebene jobHandle
wird für alle nachfolgenden POST-Anforderungen für denselben Auftrag im Parameter uploadPostParams
/ jobHandle
übergeben. Sie können damit auch den Auftragsstatus mit dem Vorgang getActiveJobs
abfragen oder die Auftragsprotokolle mit dem Vorgang getJobLogDetails
abfragen.
Wenn bei der Verarbeitung der POST-Anfrage ein Fehler auftritt, besteht der Antworttext aus einem der API-Fehlertypen, wie unter Fehler beschrieben.
Beispielhafte POST-Anfrage section-810fe32abdb9426ba0fea488dffadd1e
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--
Beispiel für eine POST-Antwort - Erfolg section-0d515ba14c454ed0b5196ac8d1bb156e
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>
Beispiel für eine POST-Antwort - Fehler section-efc32bb371554982858b8690b05090ec
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>