Warning on S3 not compatible DNS bucket name
The new created bucket should respect the DNS compatibility, nevertheless, Nextcloud should accept to mount "old created" buckets that does not respect DNS compatibility (Backward compatibility, or compatibility with CEPH). Signed-off-by: Sébastien Cat <sebastien.cat@inra.fr>
This commit is contained in:
parent
59c3d8d85f
commit
77473b0228
|
@ -99,13 +99,20 @@ trait S3ConnectionTrait {
|
||||||
}
|
}
|
||||||
$this->connection = new S3Client($options);
|
$this->connection = new S3Client($options);
|
||||||
|
|
||||||
|
if (!$this->connection->isBucketDnsCompatible($this->bucket)) {
|
||||||
|
$logger = \OC::$server->getLogger();
|
||||||
|
$logger->warning('Bucket "' . $this->bucket . '" This bucket name is not dns compatible, it may contain invalid characters.',
|
||||||
|
['app' => 'objectstore']);
|
||||||
|
}
|
||||||
|
|
||||||
if (!$this->connection->doesBucketExist($this->bucket)) {
|
if (!$this->connection->doesBucketExist($this->bucket)) {
|
||||||
$logger = \OC::$server->getLogger();
|
$logger = \OC::$server->getLogger();
|
||||||
try {
|
try {
|
||||||
$logger->info('Bucket "' . $this->bucket . '" does not exist - creating it.', ['app' => 'objectstore']);
|
$logger->info('Bucket "' . $this->bucket . '" does not exist - creating it.', ['app' => 'objectstore']);
|
||||||
$this->connection->createBucket(array(
|
if (!$this->connection->isBucketDnsCompatible($this->bucket)) {
|
||||||
'Bucket' => $this->bucket
|
throw new \Exception("The bucket will not be created because the name is not dns compatible, please correct it: " . $this->bucket);
|
||||||
));
|
}
|
||||||
|
$this->connection->createBucket(array('Bucket' => $this->bucket));
|
||||||
$this->testTimeout();
|
$this->testTimeout();
|
||||||
} catch (S3Exception $e) {
|
} catch (S3Exception $e) {
|
||||||
$logger->logException($e, [
|
$logger->logException($e, [
|
||||||
|
|
Loading…
Reference in New Issue