fix(s3): support virtual-hosted-style URLs for S3 storages

Add a "Use path-style URLs" setting to S3 storages. It is detected from
the endpoint (Alibaba OSS, Tencent COS, Volcengine/BytePlus TOS), and the
connection test switches to virtual-hosted style when the provider
rejects path-style requests. Backups pass `--path off` to mc.

Closes #10347
This commit is contained in:
Andras Bacsai
2026-10-27 15:53:16 +01:00
parent 56af27d46f
commit 1039368491
23 changed files with 396 additions and 19 deletions
@@ -0,0 +1,22 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::table('s3_storages', function (Blueprint $table) {
$table->boolean('use_path_style_endpoint')->default(true);
});
}
public function down(): void
{
Schema::table('s3_storages', function (Blueprint $table) {
$table->dropColumn('use_path_style_endpoint');
});
}
};