-
 
No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 2.1.28
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2024-07-10
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Google drive upload and download package

Additional Links

Maintainers

  • Shingo Kitagawa

Authors

  • Shingo Kitagawa

gdrive_ros

Google Drive file uploader for ROS

Installation

Setup and build workspace

cd ~
mkdir gdrive_ws/src -p
cd gdrive_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty.git
rosdep install --ignore-src -from-paths . -y -r
cd ~/gdrive_ws
catkin init
catkin build

Trouble shooting

If you use 18.04 and python2.7, please install following versions. `

pip install oauth2client==4.1.3 rsa==4.5 pydrive==1.3.1

Do authentication of Google Drive API

Please follow step 1-5 in here.

Create your settings yaml

Please follow here.

My settings yaml is as follows;

client_config_file: /your/client/secrets/json/path
save_credentials: True
save_credentials_backend: file
save_credentials_file: /your/credentials/json/path
get_refresh_token: True
oauth_scope:
  - https://www.googleapis.com/auth/drive.file

If you set save_credentials: True, you need to login to your Google account only for the first time.

Run server for the first time and login to Google account

Run google drive server and login to Google account for the first time.

export GOOGLE_DRIVE_SETTINGS_YAML=/your/settings/yaml/path
roslaunch gdrive_ros gdrive_server.launch

Usage

Run server

export GOOGLE_DRIVE_SETTINGS_YAML=/your/settings/yaml/path
roslaunch gdrive_ros gdrive_server.launch

Call upload service

# single upload
rosservice call /gdrive_ros/upload ...
# multiple upload
rosservice call /gdrive_ros/upload_multi ...

Parameters

  • ~settings_yaml (string, default: None)

    • PyDrive settings yaml path
  • ~share_type (string, default: anyone, candidates: user, group, domain and anyone)

    • Uploaded file share type

    • For more information, please read here.

  • ~share_value (string, default: anyone)

    • Uploaded file share value
  • ~share_role (string, default: reader)

    • Uploaded file share role
  • ~share_with_link (bool, default: true)

    • Uploaded file share with link or not
  • ~auth_max_trial (int, default: -1)

    • Max authentication trial times. -1 means trying for infinite times.
  • ~auth_wait_seconds (float, default: 10.0)

    • Authentication wait seconds

Services

gdrive_ros/Upload

This service is for uploading single file in same Google Drive folder.

Request

  • file_path (string, default: '')

    • Uploaded file path
  • file_title (string: default: file_path.split('/')[-1])

    • Uploaded file title in Google Drive
  • parents_path (string, default: '')

    • Parents path in Google Drive splitted by /
  • parents_id (string, default: '')

    • Parents id in Google Drive

    • If both parents_path and parents_id are set , parents_id will be used.

  • use_timestamp_folder (bool, default: false)

    • Use timestamp folder to upload

    • Uploaded file will be saved in file_path/timestamp folder.

  • use_timestamp_file_title (bool, default: false)

    • Use timestamp for file_title

    • Uploaded file will be save as {}_{}.format(timestamp file_title).

Response

  • success (bool)

    • Upload succeeded or not
  • file_id (string)

    • Uploaded file id in Google Drive
  • file_url (string)

    • Uploaded file url in Google Drive
  • parents_id (string)

    • Parents folder id of uploaded file in Google Drive
  • parents_url (string)

    • Parents folder url of uploaded file in Google Drive

gdrive_ros/MultipleUpload

This service is for uploading multiple files in same Google Drive folder.

Request

  • file_paths (string[], default: [])

    • Uploaded file paths
  • file_titles (string[]: default: [f for f in file_paths.split('/')[-1]])

    • Uploaded file titles in Google Drive
  • parents_path (string, default: '')

    • Parents path in Google Drive splitted by /
  • parents_id (string, default: '')

    • Parents id in Google Drive

    • If both parents_path and parents_id are set , parents_id will be used.

  • use_timestamp_folder (bool, default: false)

    • Use timestamp folder to upload

    • Uploaded file will be saved in file_path/timestamp folder.

  • use_timestamp_file_title (bool, default: false)

    • Use timestamp for file_title

    • Uploaded file will be save as {}_{}.format(timestamp file_title).

Response

  • successes (bool[])

    • Upload succeeded or not
  • file_ids (string[])

    • Uploaded file ids in Google Drive
  • file_urls (string[])

    • Uploaded file urls in Google Drive
  • parents_id (string)

    • Parents folder id of uploaded file in Google Drive
  • parents_url (string)

    • Parents folder url of uploaded file in Google Drive
CHANGELOG

Changelog for package gdrive_ros

2.1.28 (2023-07-24)

  • use query with folder + title, instead of list all files then apply filters (#481)
  • Contributors: Kei Okada

2.1.27 (2023-06-24)

  • fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
  • Contributors: Kei Okada

2.1.26 (2023-06-14)

  • add LICENSE files (#476)
  • Contributors: Kei Okada

2.1.25 (2023-06-08)

  • gdrive_ros: use virtualenv (#458)
    • use python3 for pydrive_ros latest pydrive requires newer rsa??
    • gdrive_ros: catkin_virtualenv changes mode to 100644
    • gdrive_ros: enable to use relative path for settings_yaml
    • gdrive_ros: use catkin_virtualenv
  • [gdrive_ros] fix sys.version error (#429)
  • [gdrive_ros] Add ros client library and examples ( for roseus and rospy) (#295)
    • euslisp directory is installed via 'install(DIRECTORY euslisp', so we can remove 'install(PROGRAMS euslisp/sample-gdrive-ros-client.l'
    • [gdrive_ros] fix module import
    • [gdrive_ros] add rospy client and update examples
    • [gdrive_ros] update CMakeLists.txt to add installation of euslisp and sample
    • [gdrive_ros] Add a roseus client library and sample
    • [gdrive_ros] add gdrive_ros client
  • [gdrive_ros] add machine arg in gdrive_server.launch (#288)
    • add machine arg in gdrive_server.launch
  • Contributors: Aoi Nakane, Kei Okada, Koki Shinjo, Naoto Tsukamoto, Shingo Kitagawa

2.1.24 (2021-07-26)

2.1.23 (2021-07-21)

  • add rostest in test_depend (#263)
  • fix-typo-gdrive (#272)
  • add version check at top of gdrive_server_node (#270)
  • Contributors: Koki Shinjo, Shingo Kitagawa

2.1.22 (2021-06-10)

  • set max authentication trial times as infinite (#249)
  • catch ServerNotFoundError in gdrive_server_node.py ((#240)
  • update doc links in gdrive_ros (#233)
  • [gdrive_ros] add node_name arg in gdrive_server.launch (#234)
  • add roslaunch test (#232)
  • [gdrive_ros] add argument respawn (#230)
  • Contributors: Shingo Kitagawa

2.1.21 (2020-08-19)

2.1.20 (2020-08-07)

2.1.19 (2020-07-21)

2.1.18 (2020-07-20)

  • [gdrive_ros] Fix gdrive_ros to catch error properly (#205)
    • fix ros log format in gdrive_ros
    • add oserr when file not found in gdrive_ros
  • Contributors: Kei Okada, Shingo Kitagawa

2.1.17 (2020-04-16)

2.1.16 (2020-04-16)

2.1.15 (2019-12-12)

  • add gdrive_ros package (#182)
  • Contributors: Shingo Kitagawa

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
google_chat_ros

Launch files

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged gdrive_ros at Robotics Stack Exchange

No version for distro galactic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 2.1.28
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2024-07-10
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Google drive upload and download package

Additional Links

Maintainers

  • Shingo Kitagawa

Authors

  • Shingo Kitagawa

gdrive_ros

Google Drive file uploader for ROS

Installation

Setup and build workspace

cd ~
mkdir gdrive_ws/src -p
cd gdrive_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty.git
rosdep install --ignore-src -from-paths . -y -r
cd ~/gdrive_ws
catkin init
catkin build

Trouble shooting

If you use 18.04 and python2.7, please install following versions. `

pip install oauth2client==4.1.3 rsa==4.5 pydrive==1.3.1

Do authentication of Google Drive API

Please follow step 1-5 in here.

Create your settings yaml

Please follow here.

My settings yaml is as follows;

client_config_file: /your/client/secrets/json/path
save_credentials: True
save_credentials_backend: file
save_credentials_file: /your/credentials/json/path
get_refresh_token: True
oauth_scope:
  - https://www.googleapis.com/auth/drive.file

If you set save_credentials: True, you need to login to your Google account only for the first time.

Run server for the first time and login to Google account

Run google drive server and login to Google account for the first time.

export GOOGLE_DRIVE_SETTINGS_YAML=/your/settings/yaml/path
roslaunch gdrive_ros gdrive_server.launch

Usage

Run server

export GOOGLE_DRIVE_SETTINGS_YAML=/your/settings/yaml/path
roslaunch gdrive_ros gdrive_server.launch

Call upload service

# single upload
rosservice call /gdrive_ros/upload ...
# multiple upload
rosservice call /gdrive_ros/upload_multi ...

Parameters

  • ~settings_yaml (string, default: None)

    • PyDrive settings yaml path
  • ~share_type (string, default: anyone, candidates: user, group, domain and anyone)

    • Uploaded file share type

    • For more information, please read here.

  • ~share_value (string, default: anyone)

    • Uploaded file share value
  • ~share_role (string, default: reader)

    • Uploaded file share role
  • ~share_with_link (bool, default: true)

    • Uploaded file share with link or not
  • ~auth_max_trial (int, default: -1)

    • Max authentication trial times. -1 means trying for infinite times.
  • ~auth_wait_seconds (float, default: 10.0)

    • Authentication wait seconds

Services

gdrive_ros/Upload

This service is for uploading single file in same Google Drive folder.

Request

  • file_path (string, default: '')

    • Uploaded file path
  • file_title (string: default: file_path.split('/')[-1])

    • Uploaded file title in Google Drive
  • parents_path (string, default: '')

    • Parents path in Google Drive splitted by /
  • parents_id (string, default: '')

    • Parents id in Google Drive

    • If both parents_path and parents_id are set , parents_id will be used.

  • use_timestamp_folder (bool, default: false)

    • Use timestamp folder to upload

    • Uploaded file will be saved in file_path/timestamp folder.

  • use_timestamp_file_title (bool, default: false)

    • Use timestamp for file_title

    • Uploaded file will be save as {}_{}.format(timestamp file_title).

Response

  • success (bool)

    • Upload succeeded or not
  • file_id (string)

    • Uploaded file id in Google Drive
  • file_url (string)

    • Uploaded file url in Google Drive
  • parents_id (string)

    • Parents folder id of uploaded file in Google Drive
  • parents_url (string)

    • Parents folder url of uploaded file in Google Drive

gdrive_ros/MultipleUpload

This service is for uploading multiple files in same Google Drive folder.

Request

  • file_paths (string[], default: [])

    • Uploaded file paths
  • file_titles (string[]: default: [f for f in file_paths.split('/')[-1]])

    • Uploaded file titles in Google Drive
  • parents_path (string, default: '')

    • Parents path in Google Drive splitted by /
  • parents_id (string, default: '')

    • Parents id in Google Drive

    • If both parents_path and parents_id are set , parents_id will be used.

  • use_timestamp_folder (bool, default: false)

    • Use timestamp folder to upload

    • Uploaded file will be saved in file_path/timestamp folder.

  • use_timestamp_file_title (bool, default: false)

    • Use timestamp for file_title

    • Uploaded file will be save as {}_{}.format(timestamp file_title).

Response

  • successes (bool[])

    • Upload succeeded or not
  • file_ids (string[])

    • Uploaded file ids in Google Drive
  • file_urls (string[])

    • Uploaded file urls in Google Drive
  • parents_id (string)

    • Parents folder id of uploaded file in Google Drive
  • parents_url (string)

    • Parents folder url of uploaded file in Google Drive
CHANGELOG

Changelog for package gdrive_ros

2.1.28 (2023-07-24)

  • use query with folder + title, instead of list all files then apply filters (#481)
  • Contributors: Kei Okada

2.1.27 (2023-06-24)

  • fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
  • Contributors: Kei Okada

2.1.26 (2023-06-14)

  • add LICENSE files (#476)
  • Contributors: Kei Okada

2.1.25 (2023-06-08)

  • gdrive_ros: use virtualenv (#458)
    • use python3 for pydrive_ros latest pydrive requires newer rsa??
    • gdrive_ros: catkin_virtualenv changes mode to 100644
    • gdrive_ros: enable to use relative path for settings_yaml
    • gdrive_ros: use catkin_virtualenv
  • [gdrive_ros] fix sys.version error (#429)
  • [gdrive_ros] Add ros client library and examples ( for roseus and rospy) (#295)
    • euslisp directory is installed via 'install(DIRECTORY euslisp', so we can remove 'install(PROGRAMS euslisp/sample-gdrive-ros-client.l'
    • [gdrive_ros] fix module import
    • [gdrive_ros] add rospy client and update examples
    • [gdrive_ros] update CMakeLists.txt to add installation of euslisp and sample
    • [gdrive_ros] Add a roseus client library and sample
    • [gdrive_ros] add gdrive_ros client
  • [gdrive_ros] add machine arg in gdrive_server.launch (#288)
    • add machine arg in gdrive_server.launch
  • Contributors: Aoi Nakane, Kei Okada, Koki Shinjo, Naoto Tsukamoto, Shingo Kitagawa

2.1.24 (2021-07-26)

2.1.23 (2021-07-21)

  • add rostest in test_depend (#263)
  • fix-typo-gdrive (#272)
  • add version check at top of gdrive_server_node (#270)
  • Contributors: Koki Shinjo, Shingo Kitagawa

2.1.22 (2021-06-10)

  • set max authentication trial times as infinite (#249)
  • catch ServerNotFoundError in gdrive_server_node.py ((#240)
  • update doc links in gdrive_ros (#233)
  • [gdrive_ros] add node_name arg in gdrive_server.launch (#234)
  • add roslaunch test (#232)
  • [gdrive_ros] add argument respawn (#230)
  • Contributors: Shingo Kitagawa

2.1.21 (2020-08-19)

2.1.20 (2020-08-07)

2.1.19 (2020-07-21)

2.1.18 (2020-07-20)

  • [gdrive_ros] Fix gdrive_ros to catch error properly (#205)
    • fix ros log format in gdrive_ros
    • add oserr when file not found in gdrive_ros
  • Contributors: Kei Okada, Shingo Kitagawa

2.1.17 (2020-04-16)

2.1.16 (2020-04-16)

2.1.15 (2019-12-12)

  • add gdrive_ros package (#182)
  • Contributors: Shingo Kitagawa

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
google_chat_ros

Launch files

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged gdrive_ros at Robotics Stack Exchange