Как загрузить файл google doc или диск в папку на диске с помощью google drive ruby ​​gem? - PullRequest
0 голосов
/ 05 февраля 2019

В моем приложении я хочу загрузить файл Google Doc или файл Google Drive в папку с моим диском, используя google drive ruby ​​gem.Я видел функцию наподобие upload_from_file (путь), но она работает, когда я использую локальный файл, а не когда я хочу использовать файл Google doc или диск.Кто-нибудь, чтобы помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 05 февраля 2019
#When I post my form
def create
  folder_url = "https://drive.google.com/drive/folders/"
  spreadsheet_path = "https://docs.google.com/XXX"

  #Connect to the Drive API with credentials json file
  session = GoogleDrive::Session.from_config("#{ENV['CONFIG_PATH']}/config.json")

  test_dev = session.collection_by_url("#{folder_url}XXX")

  folder = test_dev.create_subcollection(params[:title])

  #Get match between doc title and spreadsheet data
  worksheets = retrieve_spreadsheet_datas(session, spreadsheet_path).drop(1)
  worksheets.each do |row|
    name = row[1] + " " + row[2]
    if name == params[:title]
      #row[3] and row[4] contain link like "https://drive.google.com/open?id=XXX"
      if row[3] != nil
        create_folder(session, folder.web_view_link, 1, row[3])
      end
      if row[4] != nil
        create_folder(session, folder.web_view_link, 2, row[4])
      end
    end
  end

  redirect_to("/drive/index")
end

def retrieve_spreadsheet_datas(session, spreadsheet_path)
  spreadsheet = session.spreadsheet_by_url(spreadsheet_path)
  worksheet = spreadsheet.worksheets.first
  worksheet.rows
end

def create_folder(session, url, i, file)
  collection = session.collection_by_url(url) #Open collection
  col_folder = collection.create_subcollection("R#{i}") #Create subcollection in it
  col_folder_content = session.collection_by_url(col_folder.web_view_link)  #Open the new collection

  #And here I want to upload "file (row[3] and row[4])" in "col_folder_content"
end

XXX представляет ключ.Спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...