• Welcome to the Chevereto User Community!

    Here, users from all over the world come together to learn, share, and collaborate on everything related to Chevereto. It's a place to exchange ideas, ask questions, and help improve the software.

    Please keep in mind:

    • This community is user-driven. Always be polite and respectful to others.
    • Support development by purchasing a Chevereto license, which also gives you priority support.
    • Go further by joining the Community Subscription for even faster response times and to help sustain this space
  • Chevereto Support CLST

    Support response

    Support checklist

    • Got a Something went wrong message? Read this guide and provide the actual error. Do not skip this.
    • Confirm that the server meets the System Requirements
    • Check for any available Hotfix - your issue could be already reported/fixed
    • Read documentation - It will be required to Debug and understand Errors for a faster support response

s3 compatible external storage, can't use PathStyle URL

whoistop

Chevereto Member
The s3 external storage, can't use pathstyle url
For example, the URL https://bucket.endpoint can be used, but https://endpoint/bucket/ cannot be used.
Specifically, when no second-level domain is configured, like https://bucket.endpoint/, the system cannot connect to the storage server because the address is always resolved to an address in the format of https://bucket.ednpoint.

Would like to be able to provide configuration options to choose between "path style" and "virtual hosted style"

thx!
 
I still don't understand the problem. Try to explain it like I'm not the creator of the software, do please try to put some nomenclature:

  • What you refer as S3? Amazon S3? S3 Compatible? (Yes, they are different)
  • Amazon S3 on Pathstyle, Path deprecation, In Chevereto you can fully customize the storage URL to resolve content.

Did you try modifying this?

1654613482669.png
 
I believe he is saying that he cannot access the images from the custom path he has mentioned. Do note that, if you change the URL, make sure you do the settings first on your end to get the URL accessible. Chevereto does not do that automatically.
 
I still don't understand the problem. Try to explain it like I'm not the creator of the software, do please try to put some nomenclature:

  • What you refer as S3? Amazon S3? S3 Compatible? (Yes, they are different)
  • Amazon S3 on Pathstyle, Path deprecation, In Chevereto you can fully customize the storage URL to resolve content.

Did you try modifying this?

View attachment 4853
I'm using the s3 compatible service minio, and I want to use an address like this at the endpoint: https://amazonaws.com/the-bucket/
 
Unlocking this one to address Minio (perhaps others) compatibility. Seems that Amazon S3 won't deprecate this any sooner and if it does, it won't affect the S3 compatible realm.

I should add an option for toggling this or detect it based on the bucket string.

Show me how a minio External Storage form looks like, I need to see the shape of the bucket and endpoints they provide.
 
Unlocking this one to address Minio (perhaps others) compatibility. Seems that Amazon S3 won't deprecate this any sooner and if it does, it won't affect the S3 compatible realm.

I should add an option for toggling this or detect it based on the bucket string.

Show me how a minio External Storage form looks like, I need to see the shape of the bucket and endpoints they provide.
Minio not support DNS style,For Example, https://<bucket_name>.s3.domain.com. so it's URI+ Bucket name , it looks like this https://s3.domain.com/<bucket_name>, it called Path Style.
 
Unlocking this one to address Minio (perhaps others) compatibility. Seems that Amazon S3 won't deprecate this any sooner and if it does, it won't affect the S3 compatible realm.

I should add an option for toggling this or detect it based on the bucket string.

Show me how a minio External Storage form looks like, I need to see the shape of the bucket and endpoints they provide.
I check the source code in Storage.php and in line 505
Code:
public static function requireAPI(array $storage): object
    {
        $api_type = StorageApis::getApiType((int) $storage['api_id']);
        switch ($api_type) {
            case 's3':
            case 's3compatible':
                $factoria = [
                    'version' => '2006-03-01',
                    'region' => $storage['region'],
                    'command.params' => ['PathStyle' => true],

This line
Code:
 'command.params' => ['PathStyle' => true],
is not effect.

I change it to
Code:
                    'use_path_style_endpoint' => true,
                    'signatureVersion' => 'v2',
And then my MINIO works well.
 
My concern is that there are already too many installations using external storage and nobody has any issues but Minio. AWS S3 works fine with path style without touching anything.

I need to test all cases, I need test credentials as Chevereto supports several S3 compatible apis and I don't want to break functionality for other users. I think that there could be other conflicts with other providers as S3 "compatible" is not that compatible as every provider put their own quirks.

I think the best will be to add an extra JSON field to pass all the options the provider will require.

For now and until someone provides me working credentials I won't be able to work on this.
 
My concern is that there are already too many installations using external storage and nobody has any issues but Minio. AWS S3 works fine with path style without touching anything.

I need to test all cases, I need test credentials as Chevereto supports several S3 compatible apis and I don't want to break functionality for other users. I think that there could be other conflicts with other providers as S3 "compatible" is not that compatible as every provider put their own quirks.

I think the best will be to add an extra JSON field to pass all the options the provider will require.

For now and until someone provides me working credentials I won't be able to work on this.
Okay, I think it's good idea to add a field for Minio. I can provide a Minio server for you for this work. Please feel free to contact me if you need anything.
 
Reference this two, I think use 'use_path_style_endpoint' => true, is right, but not 'command.params' => ['PathStyle' => true],.
 
Reference this two, I think use 'use_path_style_endpoint' => true, is right, but not 'command.params' => ['PathStyle' => true],.
I love you, really. For two days i have been struggling to connect Chevereto with Minio.. Thank you!
 
Chevereto v4.2.0 will support the "use path style" option in S3Compatible.
 
Back
Top