Oracle is yet another object storage platform that would be a very good integration to have in our app. The good part is that Oracle's object storage fully supports the AWS S3 API, So we don't need to reinvent the wheel again!
If you look into our codebase right now, you'll see that we support Backblaze and AWS both at the same time. Also, we have only written the code for supporting AWS S3, but it works out of the box for Backblaze! (with some minor conditional changes wherever required)

Example: conditions inside useS3.tsx wherever small changes are required depending on the bucket:

Okay, so now, your job is to integrate Oracle's object storage in a similar manner by making the useS3 hook compatible with it.
- First, create a new file inside the
pages/new/ directory which will be used to get the credentials for that provider. (refer other files to get an idea)
- Then, make changes in the
useS3 hook wherever required. Explore how we've integrated Backblaze and try to follow it.
- Navigate to
util/globals.ts and add an object for your provider to the PROVIDERS array. (Also add a logo for the provider in the public/ directory)
- Navigate to
util/types.ts and add your provider's name to the Provider enum.
- Finally, navigate to the
useBucket hook and add a case for your provider and return that hook.
- Also make sure to edit any provider-specific functions to make them work with your provider. (look for switch cases or if/else statements that check for the type of provider).
Refer to CONTRIBUTING.md for further guidance: https://github.com/faisalsayed10/firefiles/blob/main/docs/CONTRIBUTING.md#testing
Oracle is yet another object storage platform that would be a very good integration to have in our app. The good part is that Oracle's object storage fully supports the AWS S3 API, So we don't need to reinvent the wheel again!
If you look into our codebase right now, you'll see that we support Backblaze and AWS both at the same time. Also, we have only written the code for supporting AWS S3, but it works out of the box for Backblaze! (with some minor conditional changes wherever required)

Example: conditions inside

useS3.tsxwherever small changes are required depending on the bucket:Okay, so now, your job is to integrate Oracle's object storage in a similar manner by making the
useS3hook compatible with it.pages/new/directory which will be used to get the credentials for that provider. (refer other files to get an idea)useS3hook wherever required. Explore how we've integrated Backblaze and try to follow it.util/globals.tsand add an object for your provider to thePROVIDERSarray. (Also add a logo for the provider in thepublic/directory)util/types.tsand add your provider's name to theProviderenum.useBuckethook and add a case for your provider and return that hook.Refer to CONTRIBUTING.md for further guidance: https://github.com/faisalsayed10/firefiles/blob/main/docs/CONTRIBUTING.md#testing