Java 如何使用python代码将android上的文件上载到Google Drive

Java 如何使用python代码将android上的文件上载到Google Drive,java,android,python,dropbox,google-drive-android-api,Java,Android,Python,Dropbox,Google Drive Android Api,我使用以下python代码在Linux上通过命令将视频上传到我的Google驱动器。 由于android基于Linux内核,是否可以在android上使用?如果没有,是否有任何android服务可以将后台视频上传到Google Drive或DropBox $python uploader.py video_file.avi uploader.py: #!/usr/bin/python import smtplib import os.path import sys import gdata.da

我使用以下python代码在Linux上通过命令将视频上传到我的Google驱动器。 由于android基于Linux内核,是否可以在android上使用?如果没有,是否有任何android服务可以将后台视频上传到Google Drive或DropBox

$python uploader.py video_file.avi

uploader.py:

#!/usr/bin/python
import smtplib
import os.path
import sys
import gdata.data
import gdata.docs.data
import gdata.docs.client
import ConfigParser

from curses import ascii              


class MotionUploader:
    def __init__(self):


        self.password = "my Gmail password"
        self.sender   = "myGmail@gmail.com"                 

        # Folder (or collection) in Docs where you want the videos to go
        self.folder = 'motion'


        self._create_gdata_client()

    def _create_gdata_client(self):
        """Create a Documents List Client."""
        self.client = gdata.docs.client.DocsClient(source='motion_uploader')
        self.client.http_client.debug = False
        self.client.client_login(self.sender, self.password, service=self.client.auth_service, source=self.client.source)

    def _get_folder_resource(self):
        """Find and return the resource whose title matches the given folder."""
        col = None
        for resource in self.client.GetAllResources(uri='/feeds/default/private/full/-/folder'):
            if resource.title.text == self.folder:
                col = resource
                break    
        return col


    def _upload(self, video_file_path, folder_resource):
        '''Upload the video and return the doc'''
        doc = gdata.docs.data.Resource(type='video', title=os.path.basename(video_file_path))
        media = gdata.data.MediaSource()
        media.SetFileHandle(video_file_path, 'video/avi')
        doc = self.client.CreateResource(doc, media=media, collection=folder_resource)
        return doc

    def upload_video(self, video_file_path):
        """Upload a video to the specified folder"""

        folder_resource = self._get_folder_resource()
        if not folder_resource:
            raise Exception('Could not find the %s folder' % self.folder)

        doc = self._upload(video_file_path, folder_resource)


        video_link = None
        for link in doc.link:             
             if 'docs.google.com/file/d' in link.href:
                 video_link = link.href
                 break  


if __name__ == '__main__':         
    try:
        if len(sys.argv) < 2:
            exit('Usage: uploader.py {config-file-path} {video-file-path}')

        vid_path = sys.argv[1]        
        if not os.path.exists(vid_path):
            exit('Video file does not exist [%s]' % vid_path)    
        MotionUploader().upload_video(vid_path)        
    except gdata.client.BadAuthentication:
        exit('Invalid user credentials given.')
    except gdata.client.Error:
        exit('Login Error')
    except Exception as e:
        exit('Error: [%s]' % e)

我真的不明白你为什么要在Android上使用Python?Android可以通过Google Play服务使用Google Drive API。这里有很好的记录:


您也可以查看官方的Quickstart应用程序:。

您编写了该脚本吗?“来自诅咒”导入ascii有点奇怪,因为脚本似乎没有使用它。。。但从谷歌上快速搜索,Android Python似乎确实有诅咒,FWIW。实际上,我修改了从互联网上获得的代码,我只是忘了删除ascii。但是代码在linux Beaglebone上运行良好。我是android java的初学者。但我会尝试第二个链接。我只需要自动上传文件,而不需要单击android屏幕上的任何按钮。你也必须检查以使其工作。