2013-08-23 169 views
0

我想要上傳一個我在Blobstore中擁有的文件,並且我希望將其發送給我的Python應用程序的用戶。對於這個用戶,我有帳戶名稱「[email protected]」和他們的密碼。我不能這樣做?將文件從blobstore上傳到Google Drive

我用這個,但不要功能:

def subirArchivoDrive (self,f): 
    # Create a client class which will make HTTP requests with Google Docs server. 
    client = gdata.docs.service.DocsService() 
    # Authenticate using your Google Docs email address and password. 
    client.ClientLogin('[email protected]', 'xxxxxxxxxx') 
    urlfetch.set_default_fetch_deadline(45) 
    ms = gdata.MediaSource(file_path=f, content_type="text/plain") 
    client.UploadDocument(ms, "SERENOPROBANDO", f) 

在線路中發生的錯誤:MS = gdata.MediaSource(FILE_PATH = F,CONTENT_TYPE = 「text/plain的」)和 「f」是:

 self.fileName = files.blobstore.create(mime_type='application/octet-stream',_blobinfo_uploaded_filename=nombreCSV) 

的錯誤是:

2013年8月23日13:32:24.859 回溯(最近通話最後一個): é2013年8月23日13:32:24.859 文件「/base/data/home/runtimes/python/python_dist/lib/python2.5/dummy_thread.py」,第51行,在start_new_thread中 E 2013-08-23 13:32:24.859 函數(* args, ** kwargs) E 2013-08-23 13:32:24.859 文件「/base/data/home/apps/s~ono-hat-vv2/1.369704550404323662/src/exportacion.py」,第271行,原則上 E 2013-08-23 13:32:24.859 self.subirArchivoDrive(self.fileName) E 2013-08-23 13:32:24.859 文件「/ base/data/home/apps/s〜ono-hat -vv2/1.369704550404323662/src/exportacion.py「,第343行,在subirArchivoDrive中 E 2013-08-23 13:32:24.859 ms = gdata.MediaSource(file_path = f,content_type =」text/plain「) E 2013-08-23 13:32:24.859 File「/base/data/home/apps/s~ono-hat-vv2/1.369704550404323662/gdata/ init .py」,line 92,in init E 2013-08-23 13:32:24.859 self.setFile(FILE_PATH,CONTENT_TYPE) Ë2013年8月23日13:32:24.859 文件「/base/data/home/apps/s~ono-hat-vv2/1.369704550404323662/gdata/ INIT的.py 「,line 103,in setFile E 2013-08-23 13:32:24.859 self.file_handle = open(file_name,'rb') E 2013-08-23 13:32:24.859 IOError:[Errno 13 ]權限被拒絕:'/ blobstore /可寫:AD8BvukgB3Fn-zPXCfo-R3MWqu0IL-WBaL6Pa1BbxTL9gGpC5mrmyRMWIbaVUYT1kPoFY1ykhe8GUVV_c1pmm7jlDRruK1UFT906QI-L6qyzgY1JASuO ztZhtN3AleoU4VWIJlGNqkC9ykrToM8TaV_TqfNZEmLNDptpHrKl_IZlU_tnkfieihAizYT9ri7-fNl2LMHSMC4w9BhY3BKJs9jDnGnX91B9bqkbSty-G2sbLRAZZFo1it2nwgQxJdW9F4wqn2h9_Lg6fjka_myXLUrVWrQpc9V9sB3xX_NAY1YJ5QXDgP3cPKKg-doykPO4lIhTqRqZ2zyFUx-zRUJbcyzTMM_u9SmGGeVFMwLpTGEhuX9zA_N9_dMbPnxoV3Sd5ExkYZ1AZUbma6ZZmIJe-R2T4Htb5DbXDDtrrSojRx5Qgyio25tlP5h6sZSUrxvRT0TQK7IgjZxHSli3iagS7EEckcFe3Vp4t97BBHa-Bo0cPh3A4KZ5BFpRz0cP_dG9ntZfe7W1VBhCGZ6oyotzcFUXJUBMZal0rJ56zRIFIdIOnqbZf-PSC3RWp5F-oRbABnRnnRF4Rm3e1I1XGHWkZ2mX_kIBSoJKC8CxhZwRyInmbxcv2kqd1z53CjIW1vRH3_r0n6QhpfARqJc3vQ7Jhsxeycy_SQTuBKOfkXXTXAGdengBZ7qPi3nWZw-mCbnS9SgvoANd99X3hoUK2DfNJScWXLQ2BsPoUTO07ubNJwRJC86HRlLmNM5ToKYuRvPtmPpW9imht5uqIKpTx-2tcmArQNAHy9eYaSXzZsI5PAipl-CwgUkfGUqmU1svFvcM585X7XL3zt5P44pPUQqSsKE8GFNAxKWwSLp46p-qkxLBVvo7UwstYTja7SgX9L2cn89hptHRq4C7Rzy1u3r5i4HawvrFDeT5fSh9R-feHOqndQCS16bAFDKaknOZdSLX0iidGzyGEam_ZCMQneLm5GiXsu79q7RNUw」

問候。

回答

0

您的代碼有幾個問題。

MediaSource的接收任一個file_pathfile_handle。如果提供了file_path,它必須是文件系統中可讀文件的路徑。或者,您可以提供像對象(打開的文件)那樣的文件作爲file_handle。請參閱documentationsource

blobstore.create是一個函數,該函數創建一個文件名,該文件名只能用blobstore服務打開並且實際上已被棄用。

如果你已經有了blobstore中的文件,你需要使用BlobInfo.open來代替。 ms = gdata.MediaSource(file_handle=blobinfo.open(), content_type="text/plain")

另外,我希望粘貼的密碼不是真實的。同時請注意,詢問用戶密碼並不是一個好習慣,您應該使用OAuth。

還要注意一些gdata apis已經被更新版本取代,在這種情況下被Drive api取代。看看這個complete python example

相關問題