Flysystem adapter for OpenStack Swift.
composer require nimbusoft/flysystem-openstack-swift
$openstack = new OpenStack\OpenStack([
'authUrl' => '{authUrl}',
'region' => '{region}',
'user' => [
'id' => '{userId}',
'password' => '{password}'
],
'scope' => ['project' => ['id' => '{projectId}']]
]);
$container = $openstack->objectStoreV1()
->getContainer('{containerName}');
$adapter = new Nimbusoft\Flysystem\OpenStack\SwiftAdapter($container);
$flysystem = new League\Flysystem\Filesystem($adapter);
The Swift adapter allows you to configure the behavior of uploading large objects. You can set the following configuration options:
swiftLargeObjectThreshold
: Size of the file in bytes when to switch over to the large object upload procedure. Default is 300 MiB. The maximum allowed size of regular objects is 5 GiB.swiftSegmentSize
: Size of individual segments or chunks that the large file is split up into. Default is 100 MiB. Should be below 5 GiB.swiftSegmentContainer
: Name of the Swift container to store the large object segments to. Default is the same container that stores the regular files.
Example:
$flysystem = new League\Flysystem\Filesystem($adapter, new \League\Flysystem\Config([
'swiftLargeObjectThreshold' => 104857600, // 100 MiB
'swiftSegmentSize' => 52428800, // 50 MiB
'swiftSegmentContainer' => 'mySegmentContainer',
]));