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

introduce Google Cloud Bucket support #52

Open
wants to merge 23 commits into
base: master
Choose a base branch
from

Conversation

ccancellieri
Copy link

may fix:

Apologizing mixing both but it 'solve' all the above.

Comments? :)

@TkTech
Copy link
Owner

TkTech commented Oct 8, 2021

We typically try to avoid transferring through CKAN when possible, because CKAN installs are typically not configured for a bunch of long-running processes dishing out downloads - it's not async. Not to mention the bandwith. Having a fallback is an a-okay idea, but the way you really want to solve this for google cloud is the same way we solve it for AWS S3 - Signed URLs. See https://cloud.google.com/storage/docs/access-control/signed-urls.

This allows you to keep your bucket private by default, do permission checks with CKAN, return a temporary URL with a cryptographic value attached to it, and allow the user to download the file directly from GCP without proxying.

This implements: Upgrade libcloud to the latest release supporting python TkTech#53
@ccancellieri
Copy link
Author

ccancellieri commented Oct 9, 2021

Thanks @TkTech yes I know but having a quick alternative is better than nothing ;)

Thank you also for that link, I've seen als that approach but, if possible, I really don't want to implement it for a specific driver only (f.e.: google).

be sure, we need this driver working in production soon over google so, I'll try soon to add also that support in another pull request on this plugin and possibly directly into apache-libcloud.

Thanks

@ccancellieri
Copy link
Author

Let me reshape and split the two so you can selectively merge: #49 and #51
I'll come later with an ad hoc support for temp-signed-url feature for google buckets following your guidance
.

@ccancellieri ccancellieri changed the title introduce Google Cloud Bucket support and private file proxy introduce Google Cloud Bucket support Oct 9, 2021
@ccancellieri
Copy link
Author

@TkTech Just splitted (as you may have seen) and added the patch to the specific google support branch to provide signed private url from google and installation procedure.

Tested it works well.

How it looks now?

Thanks for your comments

boxdev and others added 17 commits December 8, 2023 11:34
* update generate_signed_url

* update requirements.txt

* Add Function for Generating Signed URLs with User Impersonation in Google Cloud Storage

* Refactor and Extend Cloud Storage Integration for Enhanced Azure, Google Cloud, and Error Handling

* Implement Bucket Management and IAM Permission Features for Google Cloud Storage Integration

* Implement Command Pattern for Group Management and GCP Bucket Creation

* Add Exception Handling for GCP Group Creation, Deletion, and Member Management

* Add Functionality for Creating Authorized Sessions with GCP ID Tokens

* Implement Authorization Checks for GCP Group and Member Management

* Integrate GCP Group Workspace Management with CKAN Organization Actions

* Extend CloudStoragePlugin with Organization and Member Management Actions

* update bucket path

* Add etl feature

* Update readme file

* Add check_resource_directories

* Add Storage dir constant

---------

Co-authored-by: boxdev <[email protected]>
* update generate_signed_url

* update requirements.txt

* Add Function for Generating Signed URLs with User Impersonation in Google Cloud Storage

* Refactor and Extend Cloud Storage Integration for Enhanced Azure, Google Cloud, and Error Handling

* Implement Bucket Management and IAM Permission Features for Google Cloud Storage Integration

* Implement Command Pattern for Group Management and GCP Bucket Creation

* Add Exception Handling for GCP Group Creation, Deletion, and Member Management

* Add Functionality for Creating Authorized Sessions with GCP ID Tokens

* Implement Authorization Checks for GCP Group and Member Management

* Integrate GCP Group Workspace Management with CKAN Organization Actions

* Extend CloudStoragePlugin with Organization and Member Management Actions

* update bucket path

* Add etl feature

* Update readme file

* Add check_resource_directories

* Add Storage dir constant

* remove ckan api key form constants

* Add ckan root path constant

* update readme file

---------

Co-authored-by: boxdev <[email protected]>
* update readme file

* REfactor etl
* retrieve organization members and organization description for single organization

* Refactor entire codebase

* Update readme file

* Add gcp service api

* remove hardcoded values
* add better exceptions handling

* Refactor group service to manage and retrieve group members
* crete bucket if it does not exit

* add iam permission to bucket

* update readme file
* crete bucket if it does not exit

* add iam permission to bucket

* update readme file

* fix typo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants