| Index: sitescripts/oauth2dl/README.md |
| diff --git a/sitescripts/oauth2dl/README.md b/sitescripts/oauth2dl/README.md |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4ae821e73109f0f78f86e6ddebbbf5bf5202b134 |
| --- /dev/null |
| +++ b/sitescripts/oauth2dl/README.md |
| @@ -0,0 +1,68 @@ |
| +# oauth2dl |
| + |
| +This is a script that downloads a file from a given URL |
| +using Google Oauth2 for service accounts. |
| + |
| +## Dependencies |
| + |
| +* [Python 2.7](https://www.python.org/download/releases/2.7/) |
| +* [oauth2client](https://github.com/google/oauth2client) Using pip: |
| +```commandline |
| + pip install oauth2client |
| +``` |
| +* [httplib2](https://github.com/httplib2/httplib2) Using pip: |
| +```commandline |
| + pip install httplib2 |
| +``` |
| + |
| +## Running the script |
| + |
| +The script can be run as a module, using the following command: |
| + |
| +```commandline |
| + python -m sitescripts.oauth2dl.bin.oauth2dl [-k <key-file>] [-s <scope>] [-o <path>] <url> |
| +``` |
| + |
| +where: |
| +* `key-file` = Path to the key file used to authenticate. If not provided, uses |
| +the `OAUTH2DL_KEY` environment variable. |
| +* `scope` = The scope used when authenticating(eg: |
| +https://www.googleapis.com/auth/drive). If not provided, uses the `OAUTH2DL_SCOPE` |
| +environment variable. |
| + |
| +* `path` = Path where to save the downloaded file. If not provided, the |
| +contents will be sent to `stdout` |
| +* `url` = URL of the file we're trying to download. For a Google Drive |
| +file, the url should look something like: |
| +`https://www.googleapis.com/drive/v3/files/<fileID>?alt=media` |
| + |
| +The script can also be run directly from the file, using: |
| +```commandline |
| + python sitescripts/oauth2dl/bin/oauth2dl.py [-k <key-file>] [-s <scope>] [-o <path>] <url> |
| +``` |
| + |
| +## Getting the key file |
| + |
| +The key file can be obtained by following the instructions available |
| +[here](https://developers.google.com/identity/protocols/OAuth2ServiceAccount). |
| + |
| +It should be a JSON with the following format: |
| +```json |
| + { |
| + "type": "service_account", |
| + "project_id": <project_id>, |
| + "private_key_id": <private_key_id>, |
| + "private_key": <RSA-encrypted private key>, |
| + "client_email": "<service_account_id>@<project_id>.iam.gserviceaccount.com", |
| + "client_id": <client_id>, |
| + "auth_uri": "https://accounts.google.com/o/oauth2/auth", |
| + "token_uri": "https://accounts.google.com/o/oauth2/token", |
| + "auth_provider_x509_cert_url": ..., |
| + "client_x509_cert_url": ... |
| +} |
| +``` |
| + |
| +In order to download the file the *service account* (i.e. the email in |
| +the `client_id` field from the key file) should be granted access to it. |
| + |
| + |