Chargement de ressources au moyen de HTTP POST vers le servlet UploadFile uploading-assets-by-way-of-http-posts-to-the-uploadfile-servlet

Le téléchargement de ressources dans Dynamic Media Classic implique une ou plusieurs requêtes de POST HTTP qui configurent une tâche pour coordonner toute l’activité de journal associée aux fichiers transférés.

Utilisez l’URL suivante pour accéder au servlet UploadFile :

https://<server>/scene7/UploadFile
NOTE
Toutes POST demandes de tâche de téléchargement doivent provenir de la même adresse IP.

URL d’accès pour les régions Dynamic Media

Emplacement géographique
Production URL
URL d’évaluation (utilisée pour le développement et les tests de pré-production)
Amérique du Nord
https://s7sps1ssl.scene7.com/scene7/UploadFile
https://s7sps1ssl-staging.scene7.com/scene7/UploadFile
Europe, Moyen-Orient, Asie
https://s7sps3ssl.scene7.com/scene7/UploadFile
https://s7sps3ssl-staging.scene7.com/scene7/UploadFile
Japon/Asie-Pacifique
https://s7sps5ssl.scene7.com/scene7/UploadFile
https://s7sps5ssl-staging.scene7.com/scene7/UploadFile

Processus de la tâche de téléchargement section-873625b9512f477c992f5cdd77267094

La tâche de téléchargement se compose d’une ou plusieurs POST HTTP qui utilisent un traitement commun jobHandle pour corréler le traitement dans la même tâche. Chaque requête est multipart/form-data codée et se compose des éléments de formulaire suivants :

NOTE
Toutes POST demandes de tâche de téléchargement doivent provenir de la même adresse IP.
Composant de formulaire POST HTTP
Description
auth
Obligatoire. Document d’authentification XML spécifiant l’authentification et les informations sur le client. Voir Demander l’authentification sous SOAP.
file params
Optionnel. Vous pouvez inclure un ou plusieurs fichiers à télécharger avec chaque requête POST. Chaque partie de fichier peut inclure un paramètre de nom de fichier dans l’en-tête Content-Disposition qui est utilisé comme nom de fichier cible dans IPS si aucun paramètre n’est uploadPostParams/fileName spécifié.
Composant de formulaire POST HTTP
Nom de l’élément uploadPostParams
Type
Description
uploadParams (Obligatoire. Document XML uploadParams indiquant les paramètres de transfert)
companyHandle
xsd:string
Obligatoire. Gérez vers l’entreprise vers laquelle le fichier est téléchargé.
uploadParams (Obligatoire. Document XML uploadParams indiquant les paramètres de transfert)
jobName
xsd:string
Obligatoire jobName ou jobHandle obligatoire. Nom de la tâche de téléchargement.
uploadParams (Obligatoire. Document XML uploadParams indiquant les paramètres de transfert)
jobHandle
xsd:string
Obligatoire jobName ou jobHandle obligatoire. Gérez une tâche de chargement commencée dans une demande précédente.
uploadParams (Obligatoire. Document XML uploadParams indiquant les paramètres de transfert)
locale
xsd:string
Optionnel. Code de langue et de pays pour la localisation.
uploadParams (Obligatoire. Document XML uploadParams indiquant les paramètres de transfert)
description
xsd:string
Optionnel. Description de la tâche.
uploadParams (Obligatoire. Document XML uploadParams indiquant les paramètres de transfert)
destFolder
xsd:string
Optionnel. Target chemin d’accès au dossier à préfixer vers une propriété de nom de fichier, en particulier pour les navigateurs et autres clients qui peuvent ne pas prendre en charge les chemins d’accès complets dans un nom de fichier.
uploadParams (Obligatoire. Document XML uploadParams indiquant les paramètres de transfert)
fileName
xsd:string
Optionnel. Nom du fichier cible. Permet de remplacer la propriété du nom de fichier.
uploadParams (Obligatoire. Document XML uploadParams indiquant les paramètres de transfert)
endJob
xsd:boolean
Optionnel. Faux par défaut.
uploadParams (Obligatoire. Document XML uploadParams indiquant les paramètres de transfert)
uploadParams
types:UploadPostJob
Facultatif s’il s’agit d’une demande ultérieure pour une tâche active existante. S’il existe une tâche, uploadParams elle est ignorée et les paramètres de téléchargement de la tâche existants sont utilisés. Voir UploadPostJob

Dans le <uploadPostParams> bloc se trouve le <uploadParams> bloc qui désigne le traitement des fichiers inclus.

Voir UploadPostJob.

Bien que vous puissiez supposer que le paramètre peut changer pour des uploadParams fichiers individuels dans le cadre de la même tâche, ce n’est pas le cas. Utilisez les mêmes uploadParams paramètres pour l’ensemble de la tâche.

La demande de POST initiale pour une nouvelle tâche de téléchargement doit spécifier le jobName paramètre, de préférence en utilisant un nom de tâche unique pour simplifier l’interrogation de l’état de la tâche et les requêtes de journal des tâches. Les demandes de POST supplémentaires pour la même tâche de téléchargement doivent spécifier le jobHandle paramètre au lieu de jobName, en utilisant la jobHandle valeur renvoyée par la demande initiale.

La demande de POST finale pour une tâche de téléchargement doit définir le endJob paramètre sur true afin qu’aucun fichier futur ne soit POSTed pour cette tâche. À son tour, cela permet à la tâche de se terminer immédiatement après l’ingestion de tous les fichiers POSTed. Sinon, la tâche expire si aucune demande de POST supplémentaire n’est reçue dans les 30 minutes.

Réponse UploadPOST section-421df5cc04d44e23a464059aad86d64e

Pour une demande de POST réussie, le corps de la réponse est un document XML uploadPostReturn , comme le spécifie le schéma XSD dans ce qui suit :

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

Le jobHandle paramètre renvoyé est transmis dans le uploadPostParamsparamètre / jobHandle pour toutes les demandes de POST suivantes pour la même tâche. Vous pouvez également l’utiliser pour interroger l’état de la tâche avec l’opération getActiveJobs ou pour interroger les journaux de travail avec l’opération getJobLogDetails .

Si une erreur se produit lors du traitement de la demande POST, le corps de la réponse se compose de l’un des types de défaillances d’API décrits dans Erreurs.

Exemple POST requête 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--

Exemple POST réponse - réussite 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>

Exemple POST réponse - error 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>
recommendation-more-help
4e9b9d8c-5839-4215-aa35-01b652869681