-
Notifications
You must be signed in to change notification settings - Fork 239
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Add S3 and Wasabi as storage providers #281
Add S3 and Wasabi as storage providers #281
Conversation
Thanks for the PR @takielias. Why not making just a S3 driver instead of wasabi wich uses S3 under the hood? |
Hi @takielias , thanks a lot for this PR. I don't know wasabi but I see it's a S3-compatible object storage. So why not calling this storage provider "S3 Storage" (or anything else generic) instead of Wasabi ? Your provider should work with any S3-compatible object storage provider right ? On my side I'm not using Wasabi but Tebi.io and I'm looking forward to be able to connect my vito instance to it. So naming it with a more generic name could help to not confuse user who want to connect any S3-compatible object storage. Best regards |
@saeedvaziry Thank you for the feedback! I decided to start with Wasabi because I've been using it extensively for the past 4 years and am more familiar with its nuances. There were also some conditional differences in implementing the AWS CLI for Wasabi that made it a more natural starting point for me. I agree that a more generalized S3 driver would be a great addition, and I'll definitely consider working on that in the near future. |
Hi @gaetan-hexadog, Thank you for the thoughtful feedback! You're absolutely right—Wasabi is S3-compatible, and the implementation could indeed work with any S3-compatible object storage provider. I initially focused on Wasabi because it’s what I use regularly. I'll consider refactoring the implementation to make it more universally applicable to any S3-compatible storage in near future. Thanks again for the suggestion! |
@takielias I would still go with S3 to build the core and then will extend Wasabi from S3. I can help with the PR to cover both. |
Thant would be great. How can we start? Please. |
@saeedvaziry I'm working on S3. Will share the update soon. |
Hi @saeedvaziry, I've updated the PR to incorporate a core S3 compatibility layer with the following changes:
I have also update the tests Please take a look at the code and let me know if you have any suggestions or improvements. I'm open to feedback and eager to make this as robust and flexible as possible. |
@takielias the actions are failing |
I have fixed the tests. |
…ovider' into fork/takielias/feature/add-wasabi-storage-provider
fixes #263 |
does it support minio? |
You don't need to do anything extra for the minio, the s3 engine and the minio engine ( sdks )are compatible with each other. |
Description:
This PR introduces Wasabi as a new storage provider within the Vito Deploy system. Wasabi is a cloud storage service that offers S3-compatible object storage. This addition aligns with the existing storage providers such as FTP and Dropbox, providing users with more flexible and cost-effective storage options.
Changes Made:
Modified Files:
app/Enums/StorageProvider.php
: Added Wasabi as a new enum value to support selection within the system.config/core.php
: Updated configuration to include Wasabi, enabling it to be properly recognized and managed by the system.New Files:
app/StorageProviders/Wasabi.php
: Implements the Wasabi-specific logic for managing storage operations, utilizing Wasabi’s S3-compatible API.app/SSH/Storage/Wasabi.php
: Manages the interaction between the SSH layer and Wasabi, ensuring that commands are executed correctly in a remote environment.app/SSH/Storage/scripts/wasabi/download.sh
: Bash script for downloading files from Wasabi storage.app/SSH/Storage/scripts/wasabi/upload.sh
: Bash script for uploading files to Wasabi storage.New Tests:
tests/Feature/StorageProvidersTest.php
: Added test cases for Wasabi to ensure it can be correctly configured, connected, and used for file operations, similar to existing storage providers.Reason for Changes:
Testing:
StorageProvidersTest.php
to ensure that Wasabi can be correctly configured, connected, and used for file operations.Impacted Areas:
Notes:
Reviewer Notes:
StorageProviders
andSSH
layers.download.sh
andupload.sh
) are correctly integrated and functioning as expected.StorageProvidersTest.php
to ensure they cover all necessary scenarios.