web-dev-qa-db-fra.com

URL à télécharger sur Google Drive

Existe-t-il une URL que je pourrais utiliser pour télécharger directement sur Google Drive? Par exemple, j'ai un fichier sur mon serveur http://example.com/file.doc et je souhaite le télécharger sur Google Drive avec quelque chose comme: http://google.com/?upload=http://example.com/file.doc

Quelle est l'approche pour faire cela?

5
Henrik Petterson

Que diriez-vous de cette solution de contournement? Malheureusement, il n'y a pas d'URL pour le téléchargement direct de fichiers sans autorisation sur Google API. Je propose donc une solution de contournement. Je pensais que cette méthode pourrait être facile pour réaliser ce que vous voulez faire. S'il vous plaît pensez à cela comme l'une des nombreuses réponses.

Je pense qu'en utilisant les applications Web, vous pouvez réaliser ce que vous voulez faire. Le déroulement de cette solution de contournement est le suivant.

Couler :

1. Exemple de script

  • Créer un script autonome .
    • Vous pouvez aussi faire ce flux avec des scripts liés. Ici, un script autonome est utilisé.
  • Copiez et collez l'exemple de script suivant, puis enregistrez-le.

Veuillez exécuter doGet(e). Ainsi, bien qu’une erreur se produise, le processus d’autorisation peut être effectué.

function doGet(e) {
  var blob = UrlFetchApp.fetch(e.parameters.url).getBlob();
  var id = DriveApp.createFile(blob).getId();
  return ContentService.createTextOutput(id);
}

2. Déployez Web Apps.

  • Sur le script ediror, dans la barre de menus, sélectionnez Publier -> Déployer en tant qu'application Web.
  • Dans "Version du projet:", chaîne d'entrée.
  • Dans "Exécuter l'application en tant que:", sélectionnez "Moi".
  • Dans "Qui a accès à l'application:", sélectionnez "Tout le monde, même anonyme".
  • Cliquez sur le bouton "Déployer".
  • Veuillez copier "URL actuelle de l'application Web:". L'URL est https://script.google.com/macros/s/#####/exec.
    • Vous pouvez télécharger des fichiers en utilisant cette URL.
  • Cliquez sur OK".

3. Télécharger un fichier depuis une URL

  • Le paramètre de requête est url=http://example.com/file.doc.
  • Vous pouvez télécharger file.doc en accédant à cette URL https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc à l’aide de votre navigateur .
    • Dans cet exemple de script, le fichier de téléchargement est créé dans le dossier racine de votre Google Drive.

Remarque :

  • À propos de Web Apps, si vous mettez à jour votre script, redéployez Web Apps comme nouvelle version. Par ceci, le script mis à jour est reflété.
  • Cet exemple de script est très simple. Alors s'il vous plaît modifiez ceci pour votre environnement. À ce moment-là, si vous avez des problèmes, n'hésitez pas à me le dire.
  • Dans ce cas, lorsque les utilisateurs téléchargent des fichiers à l'aide de l'URL Web Apps, ils sont téléchargés sur Google Drive du propriétaire qui a déployé Web Apps. Parce que le script est exécuté en tant que propriétaire unique.

Si ce n'était pas utile pour vous, je suis désolé.

Modifier :

Je comprends que vous voulez télécharger des fichiers depuis une URL en utilisant php et javascript (jquery j’ai utilisé ici.). Si ma compréhension est fausse, merci de me le dire. doGet(e) of Google Apps Script est requis pour utiliser ce script. Tout d'abord, veuillez copier et coller doGet(e) et déployer Web Apps. Pour les deux scripts, l'ID du fichier créé sur Google Drive est renvoyé comme réponse.

Upload par php

<?php
    $url = 'https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc';
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl,CURLOPT_FOLLOWLOCATION, true);
    $response = curl_exec($curl);
    echo $response;
    curl_close($curl);
?>

Uploadé par jQuery

$.get("https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc", function(res) {
    console.log(res);
});

Références :

Edit 2:

Si vous souhaitez que les utilisateurs téléchargent des fichiers sur Google Drive, déployez Web Apps selon le flux suivant.

Couler :

1. Exemple de script

  • Créer un script autonome .
    • Vous pouvez aussi faire ce flux avec des scripts liés. Ici, un script autonome est utilisé.
  • Copiez et collez l'exemple de script suivant, puis enregistrez-le.

Veuillez exécuter doGet(e). Ainsi, bien qu’une erreur se produise, le processus d’autorisation peut être effectué.

function doGet(e) {
  var blob = UrlFetchApp.fetch(e.parameters.url).getBlob();
  var id = DriveApp.createFile(blob).getId();
  return ContentService.createTextOutput(id);
}

2. Déployez Web Apps.

  • Sur le script ediror, dans la barre de menus, sélectionnez Publier -> Déployer en tant qu'application Web.
  • Dans "Version du projet:", chaîne d'entrée.
  • Dans "Exécuter l'application en tant que:", sélectionnez "Utilisateur accédant à l'application Web".
  • Dans "Qui a accès à l'application:", sélectionnez "Tout le monde".
  • Cliquez sur le bouton "Déployer".
  • Veuillez copier "URL actuelle de l'application Web:". L'URL est https://script.google.com/macros/s/#####/exec.
    • Vous pouvez télécharger des fichiers en utilisant cette URL.
  • Cliquez sur OK".

3. Télécharger un fichier depuis une URL

  • Le paramètre de requête est url=http://example.com/file.doc.
  • Vous pouvez télécharger file.doc en accédant à cette URL https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc à l’aide de votre navigateur .
    • Dans cet exemple de script, le fichier de téléchargement est créé dans le dossier racine de votre Google Drive.
  • Lorsque les utilisateurs accèdent à l'URL de https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc, l'écran de connexion à Google s'affiche.
  • Une fois connecté à Google, l’écran d’autorisation s’affiche.
  • Par autorisation, file.doc est chargé sur l'utilisateur de Google Drive. Parce que le script est exécuté en tant que chaque utilisateur.

Remarque :

  • Veuillez déployer les applications Web par un seul utilisateur. Et s'il vous plaît partager l'URL des applications Web entre tous les utilisateurs.
  • Dans ce cas, les utilisateurs utilisent le navigateur de chaque utilisateur, car le processus d'autorisation est requis par le navigateur .
    • Si vous utilisez ceci comme HTML, vous pouvez mettre l'URL de https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc sous forme de lien.
  • À propos de Web Apps, si vous mettez à jour votre script, redéployez Web Apps comme nouvelle version. Par ceci, le script mis à jour est reflété.

Edit 3:

Dans le cas d'utilisation de Web Apps, lorsque <div class="google-upload" data-url="http://example.com/file.doc"> est utilisé, l'exemple de script est le suivant.

Lorsque les utilisateurs cliquent sur Upload, file.doc est chargé sur le lecteur de l'utilisateur. Pour utiliser cet exemple de script, veuillez utiliser l'URL récupérée en déployant Web Apps à l'aide de l'option "Éditer 2" ci-dessus.

Dans ce cas, l'écran de connexion est affiché pour chaque utilisateur. Les utilisateurs sont tenus d'autoriser l'utilisation des API après la connexion en cliquant sur le bouton à l'écran. c'est ce que tu veux?

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.js"></script>
  </head>
  <body>
    <div class="google-upload" data-url="http://example.com/file.doc">
      <span style="background-color: #ddd">Upload</span>
    </div>
    <script>
      $(function() {
        $(".google-upload").click(function() {
          var url = "https://script.google.com/macros/s/#####/exec"; // Please input the URL here.
          var withQuery = url + "?url=";
          window.open(withQuery + $('.google-upload').attr("data-url"), "_blank", "width=600,height=600,scrollbars=1");
        });
      });
    </script>
  </body>
</html>
9
Tanaike

Jetez un oeil à Drive Uploader

https://driveuploader.com/

vous pouvez créer votre propre téléchargeur et disposer d'une URL unique qui peut être distribuée entre vos utilisateurs.

J'espère que ça aide

0
Chandrajit KC