Merge pull request #4316 from tusharxoxoxo/patch-5
Update add-storage-adapter.md
This commit is contained in:
commit
17ce9f532a
1 changed files with 6 additions and 10 deletions
|
@ -8,15 +8,14 @@ This document is part of the Appwrite contributors' guide. Before you continue r
|
|||
|
||||
Storage providers help us use various storage services to store our Appwrite data. As of the writing of these lines we already support Local storage, [AWS S3](https://aws.amazon.com/s3/) storage and [Digitalocean Spaces](https://www.digitalocean.com/products/spaces/) storage.
|
||||
|
||||
As the storage library is separated into [utopia-php/storage](https://github.com/utopia-php/storage), adding new storage adapter will consist of two phases. First adding and implementing the new adapter in the [utopia-php/storage](https://github.com/utopia-php/storage) and then adding support to the new storage adapter in Appwrite.
|
||||
As the storage library is separated into [utopia-php/storage](https://github.com/utopia-php/storage), adding a new storage adapter will consist of two phases. First adding and implementing the new adapter in the [utopia-php/storage](https://github.com/utopia-php/storage) and then adding support to the new storage adapter in Appwrite.
|
||||
|
||||
### Phase 1
|
||||
|
||||
In phase 1, we will introduce and implement the new device adapter in [utopia-php/storage](https://github.com/utopia-php/storage) library.
|
||||
|
||||
### Add new adapter
|
||||
|
||||
Add a new storage adapter inside `src/Storage/Device/` folder. Use one of the existing ones as a reference. The new adapter class should extend `Device` class and implement all the required methods.
|
||||
Add a new storage adapter inside the `src/Storage/Device/` folder. Use one of the existing ones as a reference. The new adapter class should extend `Device` class and implement all the required methods.
|
||||
|
||||
Note that the class name should start with a capital letter as PHP FIG standards suggest.
|
||||
|
||||
|
@ -40,22 +39,19 @@ If everything goes well, create a new pull request in [utopia-php/storage](https
|
|||
|
||||
In this phase we will add support to the new storage adapter in Appwrite.
|
||||
|
||||
- Note for this to happen, your PR in the first phase should have been merged and new version of [utopia-php/storage](https://github.com/utopia-php/storage) library released.
|
||||
* Note for this to happen, your PR in the first phase should have been merged and a new version of [utopia-php/storage](https://github.com/utopia-php/storage) library released.
|
||||
|
||||
### Upgrade the utopia-php/storage dependency
|
||||
|
||||
Upgrade the utopia-php/storage dependency in `composer.json` file.
|
||||
|
||||
### Introduce new environment variables
|
||||
|
||||
If required for the new adapter, may be for credentials, introduce new environment variables. The storage environment variables are prefixed as `_APP_STORAGE_DEVICE`. Please read [Adding Environment Variables]() guidelines in order to properly introduce new environment variables.
|
||||
Introduce new environment variables if the adapter requires new configuration information or to pass in credentials. The storage environment variables are prefixed as `_APP_STORAGE_DEVICE`. Please read [Adding Environment Variables](https://github.com/appwrite/appwrite/blob/master/docs/tutorials/add-environment-variable.md) guidelines in order to properly introduce new environment variables.
|
||||
|
||||
### Implement the device case
|
||||
|
||||
In `app/controllers/shared/api.php` inside init function, there is a `switch/case` statements for each supported storage device. Implement the instantiation of your device type for your device case. The device cases are the devices constants listed in the `uptopa-php/storage/Storage` class.
|
||||
In `app/controllers/shared/api.php` inside init function, there are `switch/case` statements for each supported storage device. Implement the instantiation of your device type for your device case. The device cases are the device constants listed in the `uptopa-php/storage/Storage` class.
|
||||
|
||||
### Test and verify everything works
|
||||
|
||||
To test you can switch to your newly added device using `_APP_STORAGE_DEVICE` environment variable. Then run `docker compose build && docker compose up -d` in order to build the containers with updated changes. Once the containers are running, login to Appwrite console and create a project. Then in storage section, try to upload, preview, delete files.
|
||||
To test you can switch to your newly added device using `_APP_STORAGE_DEVICE` environment variable. Then run `docker compose build && docker compose up -d` in order to build the containers with updated changes. Once the containers are running, login to Appwrite console and create a project. Then in the storage section, try to upload, preview, delete files.
|
||||
|
||||
If everything goes well, initiate a pull request to appwrite repository.
|
||||
|
|
Loading…
Reference in a new issue