Skip to content
  • Categories
  • Recent
  • Popular
Collapse
Brand Logo
  1. Home
  2. Categories
  3. Sujets Techniques
  4. Push de fichier avec API

Push de fichier avec API

Scheduled Pinned Locked Moved Sujets Techniques
14 Posts 3 Posters 596 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Y Offline
    Y Offline
    Yannick
    wrote on last edited by
    #5

    Bonjour,
    Je viens d'essayer cette version et effectivement celà fonctionne, mais j'ai toujours un manque au niveau du file, il me dit : 'file or template_nid is a mandatory parameter'. Je passe le fichier comme octet-stream, est-ce la bonne méthode ?
    Merci encore pour votre réactivité.
    Yannick

    1 Reply Last reply
    0
    • jlemangarinJ Offline
      jlemangarinJ Offline
      jlemangarin
      ADMIN SUPPORT-PROD DEV
      wrote on last edited by
      #6

      @Yannick said in Push de fichier avec API:

      requests.post(url, params=data, headers=headers)

      Bonsoir @Yannick,

      D'après la documentation python, pour attacher un fichier il conviendrait plutôt de le passer directement dans le requests.post de cette manière :

      requests.post(url, params=data, headers=headers)
      url = "https://gofast.ceo-vision.com/api/node/node"
      headers = {'Content-Type': "application/json", 'Authorization': "Basic user:password(Base 64 encoded)"}
      data = {'type': 'alfresco_item', 'title': file.filename,'locations':'/Site/_Organisation/myorga/2021/'}
      files = {'file': file}
      
      print(requests.post(url, params=data, headers=headers, files=files).json()
      

      Bonne soirée !

      Cordialement,

      LEMAN-GARIN Jérôme - CEO-Vision IT
      jerome.leman@ceo-vision.com
      Alliance - Porte A, 178 rue des Frères Lumière 74160 Archamps Technopole, FRANCE
      +33 (0) 811 693 111 et depuis l'étranger +33 (0) 972 236 057
      https://www.ceo-vision.com

      1 Reply Last reply
      0
      • V Offline
        V Offline
        vgirod
        wrote on last edited by
        #7

        Bonjour, j'ai également un problème pour push un fichier avec l'API (GoFast version 4).
        Je ne comprends pas très bien la documentation, qui donne deux headers différents et deux body différents.
        Pour l'instant, j'ai cette requête:

        POST /api/node/node HTTP/1.1
        Authorization: Basic login:mdp en base64
        Host: gofast.univ-lemans.fr
        Content-Type: application/json
        
        {"type": "alfresco_item",
         "locations": "/Sites/_vgirod#ogdocuments",
         "file": "test",
         "title":"titre"}
        

        qui me renvoie "file or template_nid is a mandatory parameter"

        J'ai l'impression que je dois faire deux requêtes à la suite? Et si oui, avez-vous un exemple fonctionnel?

        Le Mans Université
        Direction des Systèmes Informatiques
        valentin.girod@univ-lemans.fr

        1 Reply Last reply
        0
        • jlemangarinJ Offline
          jlemangarinJ Offline
          jlemangarin
          ADMIN SUPPORT-PROD DEV
          wrote on last edited by
          #8

          Bonjour @vgirod

          Quel outil ou language utilisez vous pour communiquer avec l'API ?

          La manière de poster un fichier diffère pas mal selon le language qu'on utilise (Python, PHP, JS etc)

          Merci d'avance !

          Cordialement,

          LEMAN-GARIN Jérôme - CEO-Vision IT
          jerome.leman@ceo-vision.com
          Alliance - Porte A, 178 rue des Frères Lumière 74160 Archamps Technopole, FRANCE
          +33 (0) 811 693 111 et depuis l'étranger +33 (0) 972 236 057
          https://www.ceo-vision.com

          1 Reply Last reply
          0
          • V Offline
            V Offline
            vgirod
            wrote on last edited by vgirod
            #9

            J'utilise java mais ici, j'ai utilisé un testeur d'api lambda en ligne pour voir si justement le problème vennait de mon code.
            La requête une fois envoyée est la même quelque soit le language utilisé il me semble, mais oui, le code change beaucoup en fonction du language. J'utilise ce code pour le moment:
            (en JAVA)

            URL url = new URL("https://gofast.univ-lemans.fr/api/node/node");
                        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                        String basicAuth = Base64.getEncoder().encodeToString("login:mdp".getBytes());
                        conn.setRequestProperty ("Authorization", "Basic "+basicAuth);
                        conn.setRequestProperty("Content-Type", "application/json");
                        conn.setRequestMethod("POST");
                        conn.setDoOutput(true);
                        OutputStream osw = conn.getOutputStream(); 
                        String body = "{\"type\": \"alfresco_item\","
                        		+ "\"locations\": \"/Sites/_vgirod#ogdocuments\","
                        		+ "\"file\": \"test\","
                        		+ "\"title\":\"titre\"}";
                        osw.write(body.getBytes());
                        osw.flush();
                        osw.close();  
                        conn.connect();
            

            Le Mans Université
            Direction des Systèmes Informatiques
            valentin.girod@univ-lemans.fr

            1 Reply Last reply
            0
            • jlemangarinJ Offline
              jlemangarinJ Offline
              jlemangarin
              ADMIN SUPPORT-PROD DEV
              wrote on last edited by
              #10

              @vgirod

              Oui je vois, le Content-Type global doit être de type multipart/form-data. Ce Content type permet de transmettre des parties "fichiers" et des parties "formulaire", ce qui correspond à notre JSON.

              Si j'utilise advanced rest client, cela correspond à :

              15608ddc-d254-4f9e-906a-b08d35945d46-image.png

              Et dans le body j'ai mon fichier :

              caba980e-f385-4417-b55b-7c01311d8264-image.png

              Puis mes données :

              b4701459-feed-4613-a086-afe0cb16d4bd-image.png

              Attention d'ailleurs, votre champ locations doit être un tableau en json format texte (exemple : ["/Sites/_jlemangarin"]) sans le #ogdocuments.

              J'ai trouvé des exemples d'utilisation ici mais je n'ai jamais essayé de le faire en Java, si vous n'y arrivez pas j'essaierai de le faire dans la matinée. J'ai peut être un exemple d'utilisation quelque part dans un des modules Bonita que nous utilisons.

              LEMAN-GARIN Jérôme - CEO-Vision IT
              jerome.leman@ceo-vision.com
              Alliance - Porte A, 178 rue des Frères Lumière 74160 Archamps Technopole, FRANCE
              +33 (0) 811 693 111 et depuis l'étranger +33 (0) 972 236 057
              https://www.ceo-vision.com

              1 Reply Last reply
              1
              • jlemangarinJ Offline
                jlemangarinJ Offline
                jlemangarin
                ADMIN SUPPORT-PROD DEV
                wrote on last edited by
                #11

                @vgirod

                Avez-vous pu avancer sur le sujet ?

                N'hésitez pas à revenir vers moi !

                LEMAN-GARIN Jérôme - CEO-Vision IT
                jerome.leman@ceo-vision.com
                Alliance - Porte A, 178 rue des Frères Lumière 74160 Archamps Technopole, FRANCE
                +33 (0) 811 693 111 et depuis l'étranger +33 (0) 972 236 057
                https://www.ceo-vision.com

                1 Reply Last reply
                0
                • V Offline
                  V Offline
                  vgirod
                  wrote on last edited by
                  #12

                  Bonjour, j'ai réussi à faire une requête fonctionnelle avec le même logiciel que vous, votre exemple est parfait, je vais me pencher sur le code java cet après midi et poster ma solution quand j'en aurais une.

                  Le Mans Université
                  Direction des Systèmes Informatiques
                  valentin.girod@univ-lemans.fr

                  1 Reply Last reply
                  1
                  • V Offline
                    V Offline
                    vgirod
                    wrote on last edited by
                    #13

                    Le code fourni sur cette page fonctionne parfaitement pour du java:

                    https://blog.cpming.top/p/httpurlconnection-multipart-form-data

                    Le Mans Université
                    Direction des Systèmes Informatiques
                    valentin.girod@univ-lemans.fr

                    1 Reply Last reply
                    1
                    • jlemangarinJ Offline
                      jlemangarinJ Offline
                      jlemangarin
                      ADMIN SUPPORT-PROD DEV
                      wrote on last edited by
                      #14

                      @vgirod

                      Super, merci pour ce retour !

                      LEMAN-GARIN Jérôme - CEO-Vision IT
                      jerome.leman@ceo-vision.com
                      Alliance - Porte A, 178 rue des Frères Lumière 74160 Archamps Technopole, FRANCE
                      +33 (0) 811 693 111 et depuis l'étranger +33 (0) 972 236 057
                      https://www.ceo-vision.com

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Search
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Popular
                      • Search