code apps python upload dropbox

apps - cargar archivo a mi dropbox desde python script



dropbox code (8)

Quiero subir un archivo de mi secuencia de comandos python a mi cuenta de Dropbox automáticamente. No puedo encontrar de todos modos para hacer esto con solo un usuario / pase. Todo lo que veo en el Dropbox SDK está relacionado con una aplicación que tiene interacción con el usuario. Solo quiero hacer algo como esto:

https://api-content.dropbox.com/1/files_put/ /? user = me & pass = blah


¡Gracias a @smarx por la respuesta anterior! Solo quería aclarar si alguien más intenta hacer esto.

  1. Asegúrate de instalar el módulo dropbox primero, por supuesto, pip install dropbox .

  2. Cree una aplicación en su propia cuenta de Dropbox en la "Consola de la aplicación". ( https://www.dropbox.com/developers/apps )

  3. Solo para el registro, creé mi aplicación con lo siguiente:

    a. Tipo de aplicación como "API API de Dropbox".

    segundo. Tipo de acceso a datos como "Archivos y almacenes de datos"

    do. Acceso a la carpeta como "Mi aplicación necesita acceso a los archivos que ya están en Dropbox". (es decir: Tipo de permiso como "Dropbox completo").

  4. A continuación, haga clic en el botón "generar token de acceso" y corte / pegue en el siguiente ejemplo de python en lugar de <auth_token> :

import dropbox client = dropbox.client.DropboxClient(<auth_token>) print ''linked account: '', client.account_info() f = open(''working-draft.txt'', ''rb'') response = client.put_file(''/magnum-opus.txt'', f) print ''uploaded: '', response folder_metadata = client.metadata(''/'') print ''metadata: '', folder_metadata f, metadata = client.get_file_and_metadata(''/magnum-opus.txt'') out = open(''magnum-opus.txt'', ''wb'') out.write(f.read()) out.close() print metadata


Aquí está el código para subir videos en vivo en Dropbox usando Python en Windows. Espero que esto te ayudará.

import numpy as np import cv2 import dropbox import os from glob import iglob access_token = ''paste your access token here'' #paste your access token in-between '''' client = dropbox.client.DropboxClient(access_token) print ''linked account: '', client.account_info() PATH = '''' cap = cv2.VideoCapture(0) # Define the codec and create VideoWriter object fourcc = cv2.VideoWriter_fourcc(*''XVID'') out = cv2.VideoWriter(''C:/python27/output1.avi'',fourcc, 20.0, (640,480)) #here output1.avi is the filename in which your video which is captured from webcam is stored. and it resides in C:/python27 as per the path is given. while(cap.isOpened()): ret, frame = cap.read() if ret==True: #frame = cv2.flip(frame,0) #if u want to flip your video # write the (unflipped or flipped) frame out.write(frame) cv2.imshow(''frame'',frame) if cv2.waitKey(1) & 0xFF == ord(''q''): break else: break # Release everything if job is finished cap.release() out.release() cv2.destroyAllWindows() for filename in iglob(os.path.join(PATH, ''C:/Python27/output1.avi'')): print filename try: f = open(filename, ''rb'') response = client.put_file(''/livevideo1.avi'', f) print "uploaded:", response f.close() #os.remove(filename) except Exception, e: print ''Error %s'' % e


Aquí está el código para subir videos existentes en su cuenta de Dropbox usando Python en Windows.

Espero que esto te ayudará.

# Include the Dropbox SDK import dropbox # Get your app key and secret from the Dropbox developer website app_key = ''paste your app-key here'' app_secret = ''paste your app-secret here'' flow = dropbox.client.DropboxOAuth2FlowNoRedirect(app_key, app_secret) # Have the user sign in and authorize this token authorize_url = flow.start() print ''1. Go to: '' + authorize_url print ''2. Click "Allow" (you might have to log in first)'' print ''3. Copy the authorization code.'' code = raw_input("Enter the authorization code here: ").strip() # This will fail if the user enters an invalid authorization code access_token, user_id = flow.finish(code) client = dropbox.client.DropboxClient(access_token) print ''linked account: '', client.account_info() f = open(''give full path of the video which u want to upload on your dropbox account(ex: C:/python27/examples/video.avi)'', ''rb'') response = client.put_file(''/video1.avi'', f) #video1.avi is the name in which your video is shown on your dropbox account. You can give any name here. print ''uploaded: '', response folder_metadata = client.metadata(''/'') print ''metadata: '', folder_metadata f, metadata = client.get_file_and_metadata(''/video1.avi'') out = open(''video1.avi'', ''wb'') out.write(f.read()) out.close() print metadata

Ahora para subir imágenes, se usará el mismo código.

Solo escriba el nombre del archivo de imagen para el que desea subir, por ejemplo: image.jpg en lugar del nombre del video. Cambie también el nombre de video1.avi y escriba el nombre de la imagen en la que se mostrará su imagen cargada en su Dropbox para ex: image1.jpg.


Aquí está mi enfoque usando API v2 (y Python 3). Quería subir un archivo y crear un enlace para compartirlo, que podría enviar por correo electrónico a los usuarios. Está basado en el ejemplo de sparkandshine. Nota: creo que la documentación actual de la API tiene un pequeño error que sparkandshine ha corregido.

import pathlib import dropbox import re # the source file folder = pathlib.Path(".") # located in this folder filename = "test.txt" # file name filepath = folder / filename # path object, defining the file # target location in Dropbox target = "/Temp/" # the target folder targetfile = target + filename # the target path and file name # Create a dropbox object using an API v2 key d = dropbox.Dropbox(your_api_access_token) # open the file and upload it with filepath.open("rb") as f: # upload gives you metadata about the file # we want to overwite any previous version of the file meta = d.files_upload(f.read(), targetfile, mode=dropbox.files.WriteMode("overwrite")) # create a shared link link = d.sharing_create_shared_link(targetfile) # url which can be shared url = link.url # link which directly downloads by replacing ?dl=0 with ?dl=1 dl_url = re.sub(r"/?dl/=0", "?dl=1", url) print (dl_url)


La única manera de autenticar las llamadas a la API de Dropbox es usar OAuth, que implica que el usuario dé permiso a su aplicación. No permitimos que las aplicaciones de terceros manejen las credenciales del usuario (nombre de usuario y contraseña).

Si esto es solo para su cuenta, tenga en cuenta que puede obtener fácilmente un token de OAuth para su propia cuenta y simplemente usarlo. Consulte https://www.dropbox.com/developers/blog/94/generate-an-access-token-for-your-own-account .

Si esto es para otros usuarios, deberán autorizar su aplicación una vez a través del navegador para que pueda obtener un token de OAuth. Una vez que tiene el token, puede seguir usándolo, por lo que cada usuario solo debe hacer esto una vez.


La respuesta de @Christina se basa en la aplicación v1 de Dropbox, que ahora está en desuso y se apagará el 28/6/2017. (Consulte here para más información).

La aplicación v2 se lanzó en noviembre de 2015, que es más simple, más consistente y más completa.

Aquí está el código fuente con APP v2.

#!/usr/bin/env python # -*- coding: utf-8 -*- import dropbox class TransferData: def __init__(self, access_token): self.access_token = access_token def upload_file(self, file_from, file_to): """upload a file to Dropbox using API v2 """ dbx = dropbox.Dropbox(self.access_token) with open(file_from, ''rb'') as f: dbx.files_upload(f.read(), file_to) def main(): access_token = ''******'' transferData = TransferData(access_token) file_from = ''test.txt'' file_to = ''/test_dropbox/test.txt'' # The full path to upload the file to, including the file name # API v2 transferData.upload_file(file_from, file_to) if __name__ == ''__main__'': main()

El código fuente está alojado en GitHub, here .


Lo siento si me falta algo, pero no puedes descargar la aplicación de Dropbox para tu SO y luego guardar el archivo (en Windows) en:

C:/Users/<UserName>/Dropbox/<FileName>

acabo de programar un programa de Python para guardar un archivo de texto, compruebe mi Dropbox y los guarda bien.


import dropbox access_token = ''************************'' file_from = ''index.jpeg'' //local file path file_to = ''/Siva/index.jpeg'' // dropbox path def upload_file(file_from, file_to): dbx = dropbox.Dropbox(access_token) f = open(file_from, ''rb'') dbx.files_upload(f.read(), file_to) upload_file(file_from,file_to)