JavaScript, HTML, CSS e... !
0 commenti

Upload file from Google Drive to Dropbox

Caricare file da Google Drive in Dropbox con Google Apps Script

Può sempre essere utile avere una copia di backup dei file che salviamo su Google Drive anche su un altro servizio di archiviazione dati, così come salvare contemporaneamente i file in due sistemi distinti (di cui uno non di proprietà di Google) affinché siano accessibili anche da chi non ha un account Google o da un processo non collegato alle Google API.

Con Google Apps Script, sfruttando le API di Dropbox, è possibile caricare qualsiasi file presente in Google Drive direttamente nello spazio di Dropbox senza salvarlo sul proprio computer.

Il primo passaggio è quello di creare un account Dropbox (qualora non ne avessimo già uno disponibile), accedere alla relativa console di sviluppo e creare una nuova app Dropbox come mostrato in Fig.1:



creazione di una nuova app in Dropbox

Fig. 1 - Creazione di una nuova app in Dropbox


La schermata successiva di Dropbox consentirà la creazione di un token di accesso con il quale saremo abilitati ad effettuare le chiamate alle API di Dropbox con il proprio account bypassando il flusso di autorizzazione Obox2.

A questo punto non resta altro che creare la funzione in un progetto Google Apps Script:

var dropboxAccessToken = '6uR-dtj7NlAAAAAAAAABi79...'; // L'Access Token di Dropbox

// Funzione per avviare il processo ()
uploadGoogleFilesToDropbox_('ID_DEL_FILE_SU_GOOGLE_DRIVE', 'NOME_DEL_FILE_SU_GOOGLE_DRIVE', dropboxAccessToken);

// Carica il file da Google Drive in Dropbox
function uploadGoogleFilesToDropbox_(googleDriveFileId, googleDriveFileName, dropboxAccessToken) {  
  var parameters = {
    "path": "/" + googleDriveFileName,
    "mode": "add",
    "autorename": true,
    "mute": false
  };
  
  var headers = {
    "Content-Type": "application/octet-stream",
    'Authorization': 'Bearer ' + dropboxAccessToken,
    "Dropbox-API-Arg": JSON.stringify(parameters)
  };
  
  var driveFile = DriveApp.getFileById(googleDriveFileId);
  
  var options = {
    "method": "POST",
    "headers": headers,
    "payload": driveFile.getBlob().getBytes()
  };
  
  var apiUrl = "https://content.dropboxapi.com/2/files/upload";
  var response = JSON.parse(UrlFetchApp.fetch(apiUrl, options).getContentText());
}

I parametri da passare alla funzione sono autoesplicativi: l'id del file su Google Drive (recuperabile con file.getId()), il nome del file (qualsiasi nome o lo stesso nome del file su Drive recuperabile con file.getName()), l'access token di Dropbox.

Tags

Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

scrivi un commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]https://www.appsscript.it[/url] se devi riferirti ad un indirizzo web