google-drive-sdk
2013-03-26 26 views 0 likes 
0

看來我只能返回一個文件夾的內容,但沒有關於文件夾本身的信息。如何檢查文件夾是否存在於谷歌驅動器? (紅寶石客戶端)

results = client.execute({ 
    :api_method => drive.files.list, 
    :q => "mimeType='application/vnd.google-apps.folder' AND trashed=false AND title='#{app_folder_name}'", 
    :maxResults => 1 
    }) 

返回的results.to_hash [「items」]數組填充了文件夾的內容(包括子文件夾和文件)。我怎麼才能得到有關文件夾本身的信息?我想要做的就是檢查它是否存在。而且由於數組有多個條目,似乎maxResults也會被忽略。

回答

0

Google雲端硬盤上的文件夾與常規文件類似,但具有特殊的MIME類型(「application/vnd.google-apps.folder」)。一旦你的文件夾的ID,您可以用files.get請求訪問其元數據:

## 
# Print a file's metadata. 
# 
# @param [Google::APIClient] client 
# Authorized client instance 
# @param [String] file_id 
# ID of file to print 
# @return nil 
def print_file(client, file_id) 
    drive = client.discovered_api('drive', 'v2') 
    result = client.execute(
    :api_method => @drive.files.get, 
    :parameters => { 'fileId' => file_id }) 
    if result.status == 200 
    file = result.data 
    puts "Title: #{file.title}" 
    puts "Description: #{file.description}" 
    puts "MIME type: #{file.mime_type}" 
    else 
    puts "An error occurred: #{result.data['error']['message']}" 
    end 
end 
+0

如果我不知道ID ...至少在我的測試環境,我想檢查文件夾僅基於其名稱和父文件夾存在。 – Lee 2013-04-01 03:52:28

+0

文件和文件夾名稱不是唯一的,因此可能不是最安全的方法。無論如何,你的代碼應該返回文件夾的元數據而不是文件夾內容。您可以使用OAuth 2.0 Playground(https://developers.google.com/oauthplayground)嘗試相同的請求嗎? – 2013-04-01 19:54:48

相關問題