Java 如何使用python代码将android上的文件上载到Google Drive
我使用以下python代码在Linux上通过命令将视频上传到我的Google驱动器。 由于android基于Linux内核,是否可以在android上使用?如果没有,是否有任何android服务可以将后台视频上传到Google Drive或DropBox $python uploader.py video_file.avi uploader.py: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
#!/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屏幕上的任何按钮。你也必须检查以使其工作。