|
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
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
andanyone
)-
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.
- Max authentication trial 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 path in Google Drive splitted by
-
parents_id
(string
, default:''
)-
Parents id in Google Drive
-
If both
parents_path
andparents_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 path in Google Drive splitted by
-
parents_id
(string
, default:''
)-
Parents id in Google Drive
-
If both
parents_path
andparents_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 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
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
google_chat_ros |
Launch files
- launch/gdrive_server.launch
-
- machine [default: localhost]
- settings_yaml [default: $(optenv GOOGLE_DRIVE_SETTINGS_YAML /var/lib/robot/pydrive_settings.yaml)]
- respawn [default: false]
- node_name [default: gdrive_server]
- sample/sample_rospy_client.launch
-
- file_name
- file_title
- parents_path [default: /example_folder]
- sample/sample_roseus_client.launch
-
- file_name
- file_title
- parents_path [default: /example_folder]
Messages
Services
Plugins
Recent questions tagged gdrive_ros at Robotics Stack Exchange
|
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
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
andanyone
)-
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.
- Max authentication trial 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 path in Google Drive splitted by
-
parents_id
(string
, default:''
)-
Parents id in Google Drive
-
If both
parents_path
andparents_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 path in Google Drive splitted by
-
parents_id
(string
, default:''
)-
Parents id in Google Drive
-
If both
parents_path
andparents_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 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
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
google_chat_ros |
Launch files
- launch/gdrive_server.launch
-
- machine [default: localhost]
- settings_yaml [default: $(optenv GOOGLE_DRIVE_SETTINGS_YAML /var/lib/robot/pydrive_settings.yaml)]
- respawn [default: false]
- node_name [default: gdrive_server]
- sample/sample_rospy_client.launch
-
- file_name
- file_title
- parents_path [default: /example_folder]
- sample/sample_roseus_client.launch
-
- file_name
- file_title
- parents_path [default: /example_folder]