cancel
Showing results for 
Search instead for 
Did you mean: 

Remplacer un document rest api

rcainc
Champ on-the-rise
Champ on-the-rise

Bonjour à tous,

Je cherche à replacer un document déjà existant sur alfresco via l'api rest :

(je veux changer le document, pas le numéro de version ni le node ref)

curl -v -X POST -F filedata=@out.pdf -F overwrite=true -F updatenoderef=2bb6f800-2f92-4bda-8849-fae76f745bd9 http://loginSmiley Tongueassword@localhost:8080/alfresco/service/api/upload

 

En retour j'ai :

{
   "status" :  
 {
   "code" : 500,
   "name" : "Internal Error",
   "description" : "An error inside the HTTP server which prevented it from fulfilling the request."
 },   
  
 "message" : "06260269 Unexpected error occurred during upload of new content.",   
 "exception" : "",
  
 "callstack" :  
 [  
           
 ],
  
 "server" : "Community v5.2.0 (r135134-b14) schema 10,005",
 "time" : "Jul 26, 2017 3:04:59 PM"
}

Du coup je dois mal faire un truc, je présume.

Merci pour votre aide.

8 REPLIES 8

oounoughi
Star Contributor
Star Contributor

Essayez avec le nodeRef "complet":

updatenoderef=workspace://SpacesStore/2bb6f800-2f92-4bda-8849-fae76f745bd9

Cdt,

Omar

rcainc
Champ on-the-rise
Champ on-the-rise

Merci pour votre réponse,

Pas mieux :

{
   "status" :  
 {
   "code" : 404,
   "name" : "Not Found",
   "description" : "Requested resource is not available."
 },   
  
 "message" : "Node specified by updateNodeRef (workspace:\/\/SpacesStore\/2bb6f800-2f92-4bda-8849-fae76f745bd9) not found.",   
 "exception" : "",
  
 "callstack" :  
 [  
           
 ],
  
 "server" : "Community v5.2.0 (r135134-b14) schema 10,005",
 "time" : "Jul 26, 2017 4:49:55 PM"
}

Bonjour,

Vous pouvez essayer via les API Rest ajouté lors de la 5.2 : Alfresco Content Services REST API Explorer 

Pour plus d'informations sur ces API je vous invite à lire les posts :  

Y.

oounoughi
Star Contributor
Star Contributor

C'est mieux, 404 le nodeRef workspace://SpacesStore/2bb6f800-2f92-4bda-8849-fae76f745bd9 n'existe pas dans votre alfresco,

Utiliser le nodeRef du document à modifier.

Nouveau : j'ai testé avec la requête suivante et ça marche

curl -v -X POST -F filedata=@test.pdf -F overwrite=true -F updatenoderef=workspace://SpacesStore/f3bb5d08-9fd1-46da-a94a-97f20f1ef208 http://admin:admin@localhost:8080/alfresco/service/api/upload

 "/api/upload" importe une nouvelle version mineur du fichier.

O.

rcainc
Champ on-the-rise
Champ on-the-rise

Pas mieux  Smiley Sad,

du coup je vais peux être détaillé plus ce que je fais et ce que je veux faire, je me trompe probablement sur la méthode.

J'ai un document DOC_Test_SB_FR.pdf, il a plusieurs versions : 1.1 et 1.0.

Je connais le noderef du document :

   a3349b12-a0da-48ce-9cd6-85133f2040ff

Je récupère les nodes ref de chaque version via :

http://localhost:8080/alfresco/service/api/version?nodeRef=workspace://SpacesStore/a3349b12-a0da-48c...

En réponse j'ai :

[
 {
  "nodeRef": "versionStore:\/\/version2Store\/fdc0ec31-8eda-43ab-bc77-b98fd7634e64",
  "name": "DOC_Test_SB_FR.pdf",
  "label": "1.1",
  "description": "",
  "createdDate": "19 avr. 2017 09:06:17 GMT+0200 (CEST)",
  "createdDateISO": "2017-04-19T09:06:17.241+02:00",
  "creator":
  {
   "userName": "User",
   "firstName": "User",
   "lastName": "Name"
  }
 },
 {
  "nodeRef": "versionStore:\/\/version2Store\/2bb6f800-2f92-4bda-8849-fae76f745bd9",
  "name": "DOC_Test_SB_FR.pdf",
  "label": "1.0",
  "description": "",
  "createdDate": "19 avr. 2017 08:53:25 GMT+0200 (CEST)",
  "createdDateISO": "2017-04-19T08:53:25.960+02:00",
  "creator":
  {
   "userName": "User",
   "firstName": "User",
   "lastName": "Name"
  }
 }

]

Ce que je veux c'est remplacer DOC_Test_SB_FR.pdf v1.1 et DOC_Test_SB_FR.pdf v1.0 en uploadant mes fichiers de remplacement, en gardant le même numéro de version, c'est à dire que les fichiers précédents n'existe plus après l'opération.

Voilà pour le détail Smiley Happy

ycoulon
Employee
Employee

Bonjour,

Les API apporté avec la 5.2 apporte des éléments permettant d'agir sur les versions : Alfresco Content Services REST API Explorer 

Il y'a notamment une méthode "revert".

rcainc
Champ on-the-rise
Champ on-the-rise

Bonjour et merci pour votre réponse, 

Je ne crois pas que l'api revert permette ce que je veux faire, je ne veux pas remplacer une version par une autre mais remplacer le contenu d'une version Smiley Happy

ycoulon
Employee
Employee

Je pense que cela n'est pas possible.

Vous allez pouvoir remplacer le contenu en créant une nouvelle version mais remplacer le contenu d'une version existante est contraire au principe de version.

Y.