Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(services/gdrive): update service doc #2973

Merged
merged 1 commit into from
Aug 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 3 additions & 2 deletions core/src/services/dropbox/builder.rs
Expand Up @@ -39,10 +39,11 @@ use crate::*;
/// - [x] read
/// - [x] write
/// - [x] delete
/// - [ ] copy
/// - [ ] create
/// - [x] create_dir
/// - [ ] list
/// - [ ] copy
/// - [ ] rename
/// - [x] batch
///
/// # Notes
///
Expand Down
47 changes: 33 additions & 14 deletions core/src/services/gdrive/builder.rs
Expand Up @@ -39,47 +39,66 @@ use crate::*;
///
/// This service can be used to:
///
/// - [x] stat
/// - [x] read
/// - [x] write
/// - [x] delete
/// - [ ] copy
/// - [ ] create
/// - [x] create_dir
/// - [ ] list
/// - [ ] copy
/// - [ ] rename
/// - [ ] batch
///
/// # Notes
///
///
/// # Configuration
///
/// - `access_token`: set the access_token for google drive api
/// - `root`: Set the work directory for backend
///
/// ## Credentials related
///
/// ### Just provide Access Token (Temporary)
///
/// - `access_token`: set the access_token for google drive api
/// Please notice its expiration.
///
/// ### Or provide Client ID and Client Secret and refresh token (Long Term)
///
/// If you want to let OpenDAL to refresh the access token automatically,
/// please provide the following fields:
///
/// - `refresh_token`: set the refresh_token for google drive api
/// - `client_id`: set the client_id for google drive api
/// - `client_secret`: set the client_secret for google drive api
///
/// OpenDAL is a library, it cannot do the first step of OAuth2 for you.
/// You need to get authorization code from user by calling GoogleDrive's authorize url
/// and exchange it for refresh token.
///
/// Make sure you have enabled Google Drive API in your Google Cloud Console.
/// And your OAuth scope contains `https://www.googleapis.com/auth/drive`.
///
/// Please refer to [GoogleDrive OAuth2 Flow](https://developers.google.com/identity/protocols/oauth2/)
/// for more information.
///
/// You can refer to [`GdriveBuilder`]'s docs for more information
///
/// # Example
///
/// ## Via Builder
///
/// ```no_run
/// ```rust
/// use anyhow::Result;
/// use opendal::services::Gdrive;
/// use opendal::Operator;
///
/// #[tokio::main]
/// async fn main() -> Result<()> {
/// // create backend builder
/// let mut builder = Gdrive::default();
/// builder.root("/test");
/// builder.access_token("<token>");
///
/// builder.access_token("xxx").root("/path/to/root");
///
/// let op: Operator = Operator::new(builder)?.finish();
///
/// let write = op.write("abc.txt", "who are you").await?;
/// let read = op.read("abc.txt").await?;
/// let s = String::from_utf8(read).unwrap();
/// println!("{}", s);
/// let delete = op.delete("abc.txt").await?;
/// Ok(())
/// }
/// ```
Expand Down