Skip to content
Snippets Groups Projects
Unverified Commit d5850eb2 authored by Roeland Jago Douma's avatar Roeland Jago Douma Committed by GitHub
Browse files

Merge pull request #18955 from adrb/swift_upload_large_objects

Large Object support for OpenStack Swift
parents 3bf4e7d6 e1075192
No related branches found
No related tags found
No related merge requests found
......@@ -33,6 +33,8 @@ use OCP\Files\NotFoundException;
use OCP\Files\ObjectStore\IObjectStore;
use OCP\Files\StorageAuthException;
const SWIFT_SEGMENT_SIZE = 1073741824; // 1GB
class Swift implements IObjectStore {
/**
* @var array
......@@ -81,10 +83,18 @@ class Swift implements IObjectStore {
file_put_contents($tmpFile, $stream);
$handle = fopen($tmpFile, 'rb');
$this->getContainer()->createObject([
'name' => $urn,
'stream' => stream_for($handle)
]);
if (filesize($tmpFile) < SWIFT_SEGMENT_SIZE) {
$this->getContainer()->createObject([
'name' => $urn,
'stream' => stream_for($handle)
]);
} else {
$this->getContainer()->createLargeObject([
'name' => $urn,
'stream' => stream_for($handle),
'segmentSize' => SWIFT_SEGMENT_SIZE
]);
}
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment