From 40afbb40f33d128eab215c3d6ca068caaf8421c1 Mon Sep 17 00:00:00 2001 From: Max Risuhin Date: Tue, 4 Feb 2020 06:29:10 -0800 Subject: [PATCH 1/2] gdrive: add User Guide page --- .../docs/command-reference/remote/add.md | 51 ++------ .../docs/command-reference/remote/modify.md | 15 ++- public/static/docs/sidebar.json | 1 + .../user-guide/setup-google-drive-remote.md | 114 ++++++++++++++++++ .../static/img/gdrive-create-credentials.png | Bin 0 -> 52924 bytes .../img/gdrive-enable-apis-and-services.png | Bin 0 -> 23757 bytes 6 files changed, 132 insertions(+), 49 deletions(-) create mode 100644 public/static/docs/user-guide/setup-google-drive-remote.md create mode 100644 public/static/img/gdrive-create-credentials.png create mode 100644 public/static/img/gdrive-enable-apis-and-services.png diff --git a/public/static/docs/command-reference/remote/add.md b/public/static/docs/command-reference/remote/add.md index 934bf12541..e6d2e0e01a 100644 --- a/public/static/docs/command-reference/remote/add.md +++ b/public/static/docs/command-reference/remote/add.md @@ -200,52 +200,15 @@ $ dvc remote add myremote "azure://" ### Click for Google Drive -Since Google Drive has tight API usage quotas, creation and configuration of -your own `Google Project` is required: - -1. Log into the [Google Cloud Platform](https://console.developers.google.com) - account. -2. Create `New Project` or select available one. -3. Click `ENABLE APIS AND SERVICES` and search for `drive` to enable - `Google Drive API` from search results. -4. Navigate to - [All Credentials](https://console.developers.google.com/apis/credentials) - page and click `Create Credentials` to select `OAuth client ID`. It might - ask you to setup a product name on the consent screen. -5. Select `Other` for `Application type` and click `Create` to proceed with - default `Name`. -6. `client id` and `client secret` should be showed to you. Use them for - further DVC's configuration. +Please check out +[Setup a Google Drive DVC Remote](/doc/user-guide/setup-google-drive-remote) for +a full guide on configuring Google Drives for use as DVC remote storage, +including obtaining the necessary credentials, and how to form `gdrive://` URLs. ```dvc -$ dvc remote add myremote gdrive://root/my-dvc-root -$ dvc remote modify myremote gdrive_client_id my_gdrive_client_id -$ dvc remote modify myremote gdrive_client_secret gdrive_client_secret -``` - -> See `dvc remote modify` for a full list of GDrive parameters. - -On first usage of the remote you will be prompted to visit an access token -generation URL via browser. It will ask you to log into the Google account -associated with the Google Drive you want to use as remote. The login process -will guide you through the granting of the required access permissions. - -On successful access token generation, the token data will be cached in a -Git-ignored directory (located in `.dvc/tmp/gdrive-user-credentials.json`). - -> 💡 Do not share the token data with anyone else to prevent unauthorized access -> to your Google Drive. - -**Support for shared drives** - -For this, you need to obtain the directory ID and use it as part of URL passed -to DVC. This ID can be found in your web browser address bar when the shared -drive is opened. For example, for the URL -`https://drive.google.com/drive/folders/0AIac4JZqHhKmUk9PDA`, use -`0AIac4JZqHhKmUk9PDA` as ID: - -```dvc -$ dvc remote add myremote gdrive://0AIac4JZqHhKmUk9PDA/my-dvc-root +$ dvc remote add -d myremote gdrive://root/path/to/folder +$ dvc remote modify myremote gdrive_client_id +$ dvc remote modify myremote gdrive_client_secret ``` Note that GDrive remotes are not "trusted" by default. This means that the diff --git a/public/static/docs/command-reference/remote/modify.md b/public/static/docs/command-reference/remote/modify.md index c202267880..a2061a4939 100644 --- a/public/static/docs/command-reference/remote/modify.md +++ b/public/static/docs/command-reference/remote/modify.md @@ -248,22 +248,27 @@ For more information on configuring Azure Storage connection strings, visit ### Click for Google Drive +Please check out +[Setup a Google Drive DVC Remote](/doc/user-guide/setup-google-drive-remote) for +a full guide on configuring Google Drives for use as DVC remote storage, +including obtaining the necessary credentials, and how to form `gdrive://` URLs. + - `url` - remote location URL. ```dvc - $ dvc remote modify myremote url "gdrive://root/my-dvc-root" + $ dvc remote modify myremote url gdrive://root/path/to/folder ``` -- `gdrive_client_id` - Google Project's OAuth 2.0 client id. +- `gdrive_client_id` - Google Project's OAuth 2.0 **client ID**. ```dvc - $ dvc remote modify myremote gdrive_client_id my_gdrive_client_id + $ dvc remote modify myremote gdrive_client_id ``` -- `gdrive_client_secret` - Google Project's OAuth 2.0 client secret. +- `gdrive_client_secret` - Google Project's OAuth 2.0 **client secret**. ```dvc - $ dvc remote modify myremote gdrive_client_secret gdrive_client_secret + $ dvc remote modify myremote gdrive_client_secret ``` diff --git a/public/static/docs/sidebar.json b/public/static/docs/sidebar.json index c3452f3027..b36b4bbe7c 100644 --- a/public/static/docs/sidebar.json +++ b/public/static/docs/sidebar.json @@ -130,6 +130,7 @@ } }, "updating-tracked-files", + "setup-google-drive-remote", "large-dataset-optimization", "external-dependencies", { diff --git a/public/static/docs/user-guide/setup-google-drive-remote.md b/public/static/docs/user-guide/setup-google-drive-remote.md new file mode 100644 index 0000000000..f4fb3a8295 --- /dev/null +++ b/public/static/docs/user-guide/setup-google-drive-remote.md @@ -0,0 +1,114 @@ +# Setup a Google Drive DVC Remote + +Follow this guide to setup Google Drive as your DVC project's +[remote storage](/doc/command-reference/remote). + +## Configure a Google Cloud project + +DVC uses the [Google Drive API](https://developers.google.com/drive) to connect +to your Google Drive. This requires a Google Cloud _project_ that allows Drive +API connections, and its +[OAuth](https://developers.google.com/identity/protocols/OAuth2) credentials +(**client ID** and **client secret**). + +1. Sign into the [Google API Console](https://console.developers.google.com). + + > Double check you're using the intended Google account (upper-right corner). + +2. Select or + [Create](https://cloud.google.com/resource-manager/docs/creating-managing-projects#creating_a_project) + a project for DVC remote connections. + +3. [Enable the Drive API](https://developers.google.com/drive/api/v2/about-sdk) + from the **APIs & Services** **Dashboard** (left sidebar), click on **+ + ENABLE APIS AND SERVICES**. Find and select the "Google Drive API" in the API + Library, and click on the **ENABLE** button. + + ![](/static/img/gdrive-enable-apis-and-services.png) + +4. Go back to **APIs & Services** in the left sidebar, and select **OAuth + consent screen**. Chose a **User Type** and click **CREATE**. On the next + screen, enter an **Application name** e.g. "DVC remote storage", and click + the **Save** (scroll to bottom). + +5. From the left sidebar, select **Credentials**, and click the **Create + credentials** dropdown to select **OAuth client ID**. Chose **Other** and + click **Create** to proceed with a default client name. + + ![](/static/img/gdrive-create-credentials.png) + +6. The newly generated **client ID** and **client secret** should be shown to + you now, and you can always come back to **Credentials** to fetch them. + +⚠️ It should be safe to share **client ID** and **client secret** among your +team. These credentials are only used to generate the +[authorization](#authorization) DVC will later need in order to connect to the +Google Drive. + +> Note that Google Drive API has usage limits/quotas per credentials in a +> _project_ (which you can review in the +> [OAuth consent screen](https://console.developers.google.com/apis/credentials/consent)). +> Please keep this in mind when sharing them, or you may +> [exceed the limits](https://developers.google.com/drive/api/v2/handle-errors?hl=ro#resolve_a_403_error_usage_limit_exceeded). + +## URL format for Google Drive remotes + +A GDrive DVC remote URLs is needed for the `dvc remote add` command. It can be +constructed with a _base_, and an **optional** _path_ to a folder i.e. +`gdrive:///path/to/folder`. The base can be one of: + +1. `root` - indicates your topmost Google Drive directory. + +```dvc +$ dvc remote add -d mygdroot gdrive://root +$ dvc remote add mygdfolder gdrive://root/path/to/folder +``` + +2. Google Drive _Folder ID_ + +To obtain the unique _Folder ID_ in question, navigate into that folder in your +web browser, and find it in the address bar. For example, for +`https://drive.google.com/drive/folders/0AIac4JZqHhKmUk9PDA`: + +```dvc +$ dvc remote add mygdfolder gdrive://0AIac4JZqHhKmUk9PDA +$ dvc remote add mygdsubfolder \ + gdrive://0AIac4JZqHhKmUk9PDA/sub/path +``` + +[Shared drives](https://developers.google.com/drive/api/v2/about-shareddrives) +should be referenced by _Folder ID_ in the same way. + +3. `appDataFolder` - special + [application-specific data](https://developers.google.com/drive/api/v2/appdata) + folder only accessible by your application and hidden from the user. + +```dvc +$ dvc remote add mygdappata gdrive://appDataFolder +``` + +## Configure the GDrive remote + +Use the `dvc remote modify` command to set the credentials for each `gdrive://` +remote, for example: + +```dvc +$ dvc remote add -d mygdfolder gdrive://root/path/to/folder +$ dvc remote modify mygdfolder gdrive_client_id +$ dvc remote modify mygdfolder gdrive_client_secret +``` + +## Authorization + +On the first usage of a GDrive [DVC remote](/doc/command-reference/remote), +you'll be prompted to visit a web page to generate an access token, which will +require you to sign into the corresponding Google account. The +[sign-in process](https://developers.google.com/drive/api/v2/about-auth) will +guide you through granting the necessary access permissions. On success, the +token data will be cached in a Git-ignored directory located in +`.dvc/tmp/gdrive-user-credentials.json`. + +⚠️ In order to prevent unauthenticated access to your Google Drive, **do not +share access token data with others**. Each team member should have +[separate access](https://support.google.com/drive/answer/7166529) to the +appropriate Google Drive resources, and generate their own tokens. diff --git a/public/static/img/gdrive-create-credentials.png b/public/static/img/gdrive-create-credentials.png new file mode 100644 index 0000000000000000000000000000000000000000..b64e4f8abb8da05aa5c3521bf5faacb5588fc904 GIT binary patch literal 52924 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 Date: Tue, 4 Feb 2020 06:52:03 -0800 Subject: [PATCH 2/2] gdrive: updates to User Guide page --- .../docs/user-guide/setup-google-drive-remote.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/public/static/docs/user-guide/setup-google-drive-remote.md b/public/static/docs/user-guide/setup-google-drive-remote.md index f4fb3a8295..d316d1b1d6 100644 --- a/public/static/docs/user-guide/setup-google-drive-remote.md +++ b/public/static/docs/user-guide/setup-google-drive-remote.md @@ -42,8 +42,8 @@ API connections, and its ⚠️ It should be safe to share **client ID** and **client secret** among your team. These credentials are only used to generate the -[authorization](#authorization) DVC will later need in order to connect to the -Google Drive. +[authorization](#authorization) URL DVC will later prompt to visit in order to +connect to the Google Drive. > Note that Google Drive API has usage limits/quotas per credentials in a > _project_ (which you can review in the @@ -108,7 +108,6 @@ guide you through granting the necessary access permissions. On success, the token data will be cached in a Git-ignored directory located in `.dvc/tmp/gdrive-user-credentials.json`. -⚠️ In order to prevent unauthenticated access to your Google Drive, **do not -share access token data with others**. Each team member should have -[separate access](https://support.google.com/drive/answer/7166529) to the -appropriate Google Drive resources, and generate their own tokens. +⚠️ In order to prevent unauthorized access to your Google Drive, **do not share +access token data with others**. Each team member should generate their own +tokens.