Hochladen von Assets über HTTP-POSTs zum 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-Anfragen, die einen Vorgang einrichten, um die gesamte mit den hochgeladenen Dateien verknüpfte Protokollaktivität zu koordinieren.
Verwenden Sie die folgende URL, um auf das UploadFile-Servlet zuzugreifen:
https://<server>/scene7/UploadFile
Zugriff auf URLs für Dynamic Media-Regionen
Workflow des Upload-Auftrags section-873625b9512f477c992f5cdd77267094
Der Upload-Auftrag besteht aus einem oder mehreren HTTP-POSTs, die eine gemeinsame jobHandle
verwenden, um die Verarbeitung mit demselben Auftrag zu korrelieren. Jede Anfrage ist multipart/form-data
codiert und besteht aus den folgenden Formularteilen:
auth
file params
uploadPostParams/fileName
angegeben ist.uploadParams
(erforderlich) Ein XML-uploadParams
(mit Angabe der Upload-Parameter)companyHandle
xsd:string
uploadParams
(erforderlich) Ein XML-uploadParams
(mit Angabe der Upload-Parameter)jobName
xsd:string
jobName
oder jobHandle
ist erforderlich. Name des Upload-Auftrags.uploadParams
(erforderlich) Ein XML-uploadParams
(mit Angabe der Upload-Parameter)jobHandle
xsd:string
jobName
oder jobHandle
ist erforderlich. Handhabung eines Upload-Auftrags, der mit einer vorherigen Anfrage gestartet wurde.uploadParams
(erforderlich) Ein XML-uploadParams
(mit Angabe der Upload-Parameter)locale
xsd:string
uploadParams
(erforderlich) Ein XML-uploadParams
(mit Angabe der Upload-Parameter)description
xsd:string
uploadParams
(erforderlich) Ein XML-uploadParams
(mit Angabe der Upload-Parameter)destFolder
xsd:string
uploadParams
(erforderlich) Ein XML-uploadParams
(mit Angabe der Upload-Parameter)fileName
xsd:string
uploadParams
(erforderlich) Ein XML-uploadParams
(mit Angabe der Upload-Parameter)endJob
xsd:boolean
uploadParams
(erforderlich) Ein XML-uploadParams
(mit Angabe der Upload-Parameter)uploadParams
types:UploadPostJob
uploadParams
ignoriert und die vorhandenen Auftrags-Upload-Parameter werden verwendet. Siehe UploadPostJobInnerhalb des <uploadPostParams>
ist der <uploadParams>
, der die Verarbeitung der eingeschlossenen Dateien angibt.
Siehe UploadPostJob.
Auch wenn Sie davon ausgehen können, dass sich der uploadParams
-Parameter für einzelne Dateien als Teil desselben Auftrags ändern kann, ist dies nicht der Fall. Verwenden Sie dieselben uploadParams
für den gesamten Auftrag.
In der ersten POST-Anfrage für einen neuen Upload-Auftrag sollte der jobName
-Parameter angegeben werden. Vorzugsweise sollte ein eindeutiger Auftragsname verwendet werden, um nachfolgende Auftragsstatusabfragen und Vorgangslog-Abfragen zu vereinfachen. Zusätzliche POST-Anfragen für denselben Upload-Auftrag sollten den jobHandle
-Parameter anstelle von jobName
angeben und dabei den von der ursprünglichen Anfrage zurückgegebenen jobHandle
-Wert verwenden.
In der endgültigen POST-Anfrage für einen Upload-Auftrag sollte der endJob
-Parameter auf „true“ gesetzt werden, damit für diesen Auftrag keine zukünftigen Dateien veröffentlicht werden. Dadurch kann der Vorgang unmittelbar nach der Aufnahme aller POST-Dateien abgeschlossen werden. Andernfalls tritt ein Timeout des Auftrags auf, wenn innerhalb von 30 Minuten keine zusätzlichen POST-Anfragen empfangen werden.
UploadPOST-Antwort section-421df5cc04d44e23a464059aad86d64e
Bei einer erfolgreichen POST-Anfrage ist der Antworttext ein XML-uploadPostReturn
-Dokument, wie im XSD-Code im Folgenden angegeben:
<element name="uploadPostReturn">
<complexType>
<sequence>
<element name="jobHandle" type="xsd:string"/>
</sequence>
</complexType>
</element>
Die zurückgegebene jobHandle
wird für alle nachfolgenden POST-Anfragen für denselben Auftrag im Parameter uploadPostParams
/jobHandle
übergeben. Sie können damit auch den Auftragsstatus mit dem getActiveJobs
abfragen oder die Auftragsprotokolle mit dem getJobLogDetails
abfragen.
Wenn bei der Verarbeitung der POST-Anfrage ein Fehler auftritt, besteht der Antworttext aus einem der API-Fehlertypen, wie unter beschrieben.
Beispiel einer 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 einer 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 einer 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>