2012-10-05 9 views
6

quando provo ad ottenere la dimensione del file da getFileSize() su Google Drive, il risultato è nullo. So che il risultato può essere nullo quando il file non è memorizzato su Drive ma il file è memorizzato su Drive (downloadUrl è diverso da null).Google Drive: la dimensione del file è nullo

Drive lService = new Builder(new NetHttpTransport(), new JacksonFactory(), lCredential).setApplicationName("TODO").build(); 
    FileList files = lService.files().list().execute(); 

    List<FileDTO> lResult = new ArrayList<FileDTO>(); 
    for (File lFile : files.getItems()) { 
     DriveFileDTO lFileDTO = new DriveFileDTO(); 
     lFileDTO.setName(lFile.getTitle()); 
     lFileDTO.setMimeType(lFile.getMimeType()); 
     lFileDTO.setSize(lFile.getFileSize()); // <-- FileSize = NULL 

     lFileDTO.setUrl(lFile.getDownloadUrl()); 

     lResult.add(lFileDTO); 
    } 

Potete aiutarmi?

Grazie! aGO!

risposta

0

chiamata getHeaders().GetContentLength() sulla classe HttpResponse (codice presuppone myurl è il vostro URL):

HttpResponse resp = service.getRequestFactory().buildGetRequest(new GenericUrl(myurl)).execute(); 
Log.v("abc","file size is : " + resp.getHeaders().getContentLength()); 
+0

Questa risposta non è corretta. La domanda richiede file.size. La richiesta è per un elenco di file, quindi ci sono molte dimensioni di file, non solo uno. Se questo restituisce un valore, non è la dimensione di alcun file, ma piuttosto la dimensione della lista che viene restituita. – NameSpace

0

Riprova che riproduce il problema con l'OAuth 2.0 Playground:

https://developers.google.com/oauthplayground

Usando l'OAuth Playground possiamo inviare le richieste di prime e verificare se c'è un problema nel API. Ho provato a riprodurlo da solo e ha funzionato correttamente.

+0

Grazie Cloudio per il vostro aiuto. Se utilizzo il campo giochi OAuth, posso vedere le dimensioni del file. Se eseguo la stessa azione dall'API di Google Drive, la dimensione è NULL – aGO

+0

Stai utilizzando l'ultima versione della libreria client Java? Il problema si verifica solo con un singolo file? In tal caso, puoi condividere uno dei file interessati? Non riesco ancora a riprodurlo con i miei account di prova. –

+0

Dopo il test del campo da gioco di OAuth sta funzionando ... Non posso spiegarlo. Ora sto usando l'ultima libreria client Java. Se riprodurrò il problema lo scriverò. Molte grazie! – aGO

1

Una richiesta di default per un elenco di file da Google Drive includerà la dimensione del file, ma solo per i file in cui la dimensione del file è non implicitamente null. Ad esempio, le cartelle e i fogli di lavoro di Google (che sono semplicemente link) saranno nulli.

Questo può essere verificato con l'exlporer di Drive API. Basta richiedere filesize e mimtype nell'editor dei campi. Una coppia chiave-valore non verrà inclusa nella risposta per i tipi di file menzionati, anche se è stata richiesta una dimensione file, ma verrà restituita per altri tipi.

Problemi correlati