Obtenga una lista de archivos y carpetas en el almacenamiento de Google Drive usando Python

En este artículo, veremos cómo podemos obtener una lista de archivos (o carpetas) almacenados en nuestro almacenamiento en la nube de Google Drive utilizando la API de Google Drive en Python. Es una API REST que le permite aprovechar el almacenamiento de Google Drive desde su aplicación o programa.

Entonces, creemos una secuencia de comandos de Python simple que se comunique con la API de Google Drive.

Requisitos:

  • Python (2.6 o superior)
  • Una cuenta de Google con Google Drive habilitado
  • Cliente API de Google y bibliotecas OAuth de Google

Instalación:

Instale las bibliotecas requeridas ejecutando este comando:

pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

Ahora, siga estos pasos para configurar su cuenta de Google para que funcione con la API de Google Drive.

Crear un nuevo proyecto

  • Vaya a API y servicios .

Ir a API y Servicios

  • Habilite la API de Google Drive para este proyecto.

Habilitar API

Habilitar la API de Google Drive

  • Vaya a la pantalla de Consentimiento de OAuth y configure la pantalla de Consentimiento para su proyecto.

Ir a la pantalla de consentimiento de OAuth

Seleccione Externo y haga clic en Crear

  • Introduzca el nombre de su aplicación. Se mostrará en la pantalla de consentimiento.

Ingrese el nombre de la aplicación y seleccione la dirección de correo electrónico

  • Ahora ve a Credenciales.

Ir a Credenciales

  • Haga clic en Crear credenciales y vaya a ID de cliente de OAuth.

Haga clic en Crear credenciales y seleccione ID de cliente de OAuth

  • Ingrese el nombre de su aplicación y haga clic en Crear .

Ingrese el Nombre de la aplicación y haga clic en Crear

  • Se creará su ID de cliente. Descárguelo a su computadora y guárdelo como credentials.json

Descargar archivo json

NOTA: No comparta su ID DE CLIENTE o SECRETOS DE CLIENTE con nadie.

Ahora, hemos terminado con la configuración e instalación. Entonces, escribamos el script de python:

Python3

# import the required libraries
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
  
  
  
# Define the SCOPES. If modifying it,
# delete the token.pickle file.
SCOPES = ['https://www.googleapis.com/auth/drive']
  
  
  
# Create a function getFileList with 
# parameter N which is the length of 
# the list of files.
def getFileList(N):
  
    # Variable creds will store the user access token.
    # If no valid token found, we will create one.
    creds = None
  
    # The file token.pickle stores the 
    # user's access and refresh tokens. It is
    # created automatically when the authorization 
    # flow completes for the first time.
  
    # Check if file token.pickle exists
    if os.path.exists('token.pickle'):
  
        # Read the token from the file and 
        # store it in the variable creds
        with open('token.pickle', 'rb') as token:
            creds = pickle.load(token)
  
    # If no valid credentials are available, 
    # request the user to log in.
    if not creds or not creds.valid:
  
        # If token is expired, it will be refreshed,
        # else, we will request a new one.
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
  
        # Save the access token in token.pickle 
        # file for future usage
        with open('token.pickle', 'wb') as token:
            pickle.dump(creds, token)
  
    # Connect to the API service
    service = build('drive', 'v3', credentials=creds)
  
    # request a list of first N files or 
    # folders with name and id from the API.
    resource = service.files()
    result = resource.list(pageSize=N, fields="files(id, name)").execute()
  
    # return the result dictionary containing 
    # the information about the files
    return result
  
  
    
# Get list of first 5 files or 
# folders from our Google Drive Storage
result_dict = getFileList(5)
  
  
  
# Extract the list from the dictionary
file_list = result_dict.get('files')
  
  
  
# Print every file's name
for file in file_list:
    print(file['name'])

Ahora, ejecute el script:

python3 script.py

Esto intentará abrir una nueva ventana en su navegador predeterminado. Si esto falla, copie la URL de la consola y ábrala manualmente en su navegador.

Ahora, inicie sesión en su cuenta de Google si aún no lo ha hecho. Si hay varias cuentas, se le pedirá que elija una de ellas. Luego, haga clic en el botón Permitir.

Una vez completada la autenticación, su navegador mostrará un mensaje que dice El flujo de autenticación se ha completado . Puede cerrar esta ventana.

Una vez que se haya completado la autenticación, se imprimirán los nombres de los primeros N archivos (o carpetas) en su almacenamiento de Google Drive.

Nota: El archivo credentials.json debe estar en el mismo directorio que el script de Python. Si no es así, debe especificar la ruta completa al archivo en el programa.

Publicación traducida automáticamente

Artículo escrito por devansh07 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *