creocoder / yii2-flysystem

The Flysystem integration for the Yii framework.
Other
283 stars 76 forks source link

Add support for custom credentials provider #40

Closed kesselb closed 5 years ago

kesselb commented 5 years ago

Close #35

Credentials for s3 are provided by ec2 instance (https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_configuration.html#credentials).

With this pr its possible to pass $credentials and skip key and secret validation. To use the default s3 behaviour you could use something like this

use Aws\Credentials\CredentialProvider;

return [
    'class' => 'creocoder\flysystem\AwsS3Filesystem',
    'credentials' => CredentialProvider::defaultProvider(),
];

Wrap defaultProvider in memoize for best performance

use Aws\Credentials\CredentialProvider;

return [
    'class' => 'creocoder\flysystem\AwsS3Filesystem',
    'credentials' => CredentialProvider::memoize(
        CredentialProvider::defaultProvider()
    ),
];

@petrabarus @and186

schmunk42 commented 5 years ago

This should be backward-compatible, right?

kesselb commented 5 years ago

I think so, yes. When you pass key and secret and omit credentials (it's null by default) anything should be like before.

schmunk42 commented 5 years ago

Thank you!