Skip to content

Commit c619f74

Browse files
authored
Merge branch 'main' into rev
2 parents b299b3f + 821d2fc commit c619f74

32 files changed

+152
-119
lines changed

cmd/migrate_storage.go

+6
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,11 @@ var CmdMigrateStorage = &cli.Command{
9191
Value: "",
9292
Usage: "Minio checksum algorithm (default/md5)",
9393
},
94+
&cli.StringFlag{
95+
Name: "minio-bucket-lookup-type",
96+
Value: "",
97+
Usage: "Minio bucket lookup type",
98+
},
9499
},
95100
}
96101

@@ -220,6 +225,7 @@ func runMigrateStorage(ctx *cli.Context) error {
220225
UseSSL: ctx.Bool("minio-use-ssl"),
221226
InsecureSkipVerify: ctx.Bool("minio-insecure-skip-verify"),
222227
ChecksumAlgorithm: ctx.String("minio-checksum-algorithm"),
228+
BucketLookUpType: ctx.String("minio-bucket-lookup-type"),
223229
},
224230
})
225231
default:

custom/conf/app.example.ini

+6
Original file line numberDiff line numberDiff line change
@@ -1895,6 +1895,9 @@ LEVEL = Info
18951895
;;
18961896
;; Minio checksum algorithm: default (for MinIO or AWS S3) or md5 (for Cloudflare or Backblaze)
18971897
;MINIO_CHECKSUM_ALGORITHM = default
1898+
;;
1899+
;; Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
1900+
;MINIO_BUCKET_LOOKUP_TYPE = auto
18981901

18991902
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
19001903
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -2576,6 +2579,9 @@ LEVEL = Info
25762579
;;
25772580
;; Minio skip SSL verification available when STORAGE_TYPE is `minio`
25782581
;MINIO_INSECURE_SKIP_VERIFY = false
2582+
;;
2583+
;; Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
2584+
;MINIO_BUCKET_LOOKUP_TYPE = auto
25792585

25802586
;[proxy]
25812587
;; Enable the proxy, all requests to external via HTTP will be affected

docs/content/administration/config-cheat-sheet.en-us.md

+8
Original file line numberDiff line numberDiff line change
@@ -851,6 +851,7 @@ Default templates for project boards:
851851
- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when STORAGE_TYPE is `minio`
852852
- `MINIO_INSECURE_SKIP_VERIFY`: **false**: Minio skip SSL verification available when STORAGE_TYPE is `minio`
853853
- `MINIO_CHECKSUM_ALGORITHM`: **default**: Minio checksum algorithm: `default` (for MinIO or AWS S3) or `md5` (for Cloudflare or Backblaze)
854+
- `MINIO_BUCKET_LOOKUP_TYPE`: **auto**: Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
854855

855856
## Log (`log`)
856857

@@ -1272,6 +1273,7 @@ is `data/lfs` and the default of `MINIO_BASE_PATH` is `lfs/`.
12721273
- `MINIO_BASE_PATH`: **lfs/**: Minio base path on the bucket only available when `STORAGE_TYPE` is `minio`
12731274
- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when `STORAGE_TYPE` is `minio`
12741275
- `MINIO_INSECURE_SKIP_VERIFY`: **false**: Minio skip SSL verification available when STORAGE_TYPE is `minio`
1276+
- `MINIO_BUCKET_LOOKUP_TYPE`: **auto**: Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
12751277

12761278
## Storage (`storage`)
12771279

@@ -1286,6 +1288,7 @@ Default storage configuration for attachments, lfs, avatars, repo-avatars, repo-
12861288
- `MINIO_LOCATION`: **us-east-1**: Minio location to create bucket only available when `STORAGE_TYPE` is `minio`
12871289
- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when `STORAGE_TYPE` is `minio`
12881290
- `MINIO_INSECURE_SKIP_VERIFY`: **false**: Minio skip SSL verification available when STORAGE_TYPE is `minio`
1291+
- `MINIO_BUCKET_LOOKUP_TYPE`: **auto**: Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
12891292

12901293
The recommended storage configuration for minio like below:
12911294

@@ -1307,6 +1310,8 @@ MINIO_USE_SSL = false
13071310
; Minio skip SSL verification available when STORAGE_TYPE is `minio`
13081311
MINIO_INSECURE_SKIP_VERIFY = false
13091312
SERVE_DIRECT = true
1313+
; Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
1314+
MINIO_BUCKET_LOOKUP_TYPE = auto
13101315
```
13111316

13121317
Defaultly every storage has their default base path like below
@@ -1353,6 +1358,8 @@ MINIO_LOCATION = us-east-1
13531358
MINIO_USE_SSL = false
13541359
; Minio skip SSL verification available when STORAGE_TYPE is `minio`
13551360
MINIO_INSECURE_SKIP_VERIFY = false
1361+
; Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
1362+
MINIO_BUCKET_LOOKUP_TYPE = auto
13561363
```
13571364

13581365
## Repository Archive Storage (`storage.repo-archive`)
@@ -1372,6 +1379,7 @@ is `data/repo-archive` and the default of `MINIO_BASE_PATH` is `repo-archive/`.
13721379
- `MINIO_BASE_PATH`: **repo-archive/**: Minio base path on the bucket only available when `STORAGE_TYPE` is `minio`
13731380
- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when `STORAGE_TYPE` is `minio`
13741381
- `MINIO_INSECURE_SKIP_VERIFY`: **false**: Minio skip SSL verification available when STORAGE_TYPE is `minio`
1382+
- `MINIO_BUCKET_LOOKUP_TYPE`: **auto**: Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
13751383

13761384
## Repository Archives (`repo-archive`)
13771385

docs/content/administration/config-cheat-sheet.zh-cn.md

+8
Original file line numberDiff line numberDiff line change
@@ -796,6 +796,7 @@ Gitea 创建以下非唯一队列:
796796
- `MINIO_USE_SSL`: **false**: Minio 启用 SSL,仅当 STORAGE_TYPE 为 `minio` 时可用。
797797
- `MINIO_INSECURE_SKIP_VERIFY`: **false**: Minio 跳过 SSL 验证,仅当 STORAGE_TYPE 为 `minio` 时可用。
798798
- `MINIO_CHECKSUM_ALGORITHM`: **default**: Minio 校验算法:`default`(适用于 MinIO 或 AWS S3)或 `md5`(适用于 Cloudflare 或 Backblaze)
799+
- `MINIO_BUCKET_LOOKUP_TYPE`: **auto**: Minio的bucket查找方式默认为`auto`模式,可将其设置为`dns`(虚拟托管样式)或`path`(路径样式),仅当`STORAGE_TYPE``minio`时可用。
799800

800801
## 日志 (`log`)
801802

@@ -1201,6 +1202,7 @@ ALLOW_DATA_URI_IMAGES = true
12011202
- `MINIO_BASE_PATH`**lfs/**:桶上的 Minio 基本路径,仅在 `STORAGE_TYPE``minio` 时可用。
12021203
- `MINIO_USE_SSL`**false**:Minio 启用 ssl,仅在 `STORAGE_TYPE``minio` 时可用。
12031204
- `MINIO_INSECURE_SKIP_VERIFY`**false**:Minio 跳过 SSL 验证,仅在 `STORAGE_TYPE``minio` 时可用。
1205+
- `MINIO_BUCKET_LOOKUP_TYPE`: **auto**: Minio的bucket查找方式默认为`auto`模式,可将其设置为`dns`(虚拟托管样式)或`path`(路径样式),仅当`STORAGE_TYPE``minio`时可用。
12041206

12051207
## 存储 (`storage`)
12061208

@@ -1215,6 +1217,7 @@ ALLOW_DATA_URI_IMAGES = true
12151217
- `MINIO_LOCATION`**us-east-1**:创建桶的 Minio 位置,仅在 `STORAGE_TYPE``minio` 时可用。
12161218
- `MINIO_USE_SSL`**false**:Minio 启用 ssl,仅在 `STORAGE_TYPE``minio` 时可用。
12171219
- `MINIO_INSECURE_SKIP_VERIFY`**false**:Minio 跳过 SSL 验证,仅在 `STORAGE_TYPE``minio` 时可用。
1220+
- `MINIO_BUCKET_LOOKUP_TYPE`: **auto**: Minio的bucket查找方式默认为`auto`模式,可将其设置为`dns`(虚拟托管样式)或`path`(路径样式),仅当`STORAGE_TYPE``minio`时可用。
12181221

12191222
建议的 minio 存储配置如下:
12201223

@@ -1236,6 +1239,8 @@ MINIO_USE_SSL = false
12361239
; Minio skip SSL verification available when STORAGE_TYPE is `minio`
12371240
MINIO_INSECURE_SKIP_VERIFY = false
12381241
SERVE_DIRECT = true
1242+
; Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
1243+
MINIO_BUCKET_LOOKUP_TYPE = auto
12391244
```
12401245

12411246
默认情况下,每个存储都有其默认的基本路径,如下所示:
@@ -1282,6 +1287,8 @@ MINIO_LOCATION = us-east-1
12821287
MINIO_USE_SSL = false
12831288
; Minio skip SSL verification available when STORAGE_TYPE is `minio`
12841289
MINIO_INSECURE_SKIP_VERIFY = false
1290+
; Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
1291+
MINIO_BUCKET_LOOKUP_TYPE = auto
12851292
```
12861293

12871294
### 存储库归档存储 (`storage.repo-archive`)
@@ -1299,6 +1306,7 @@ MINIO_INSECURE_SKIP_VERIFY = false
12991306
- `MINIO_BASE_PATH`: **repo-archive/**:存储桶上的Minio基本路径,仅在`STORAGE_TYPE``minio`时可用。
13001307
- `MINIO_USE_SSL`: **false**:启用Minio的SSL,仅在`STORAGE_TYPE``minio`时可用。
13011308
- `MINIO_INSECURE_SKIP_VERIFY`: **false**:跳过Minio的SSL验证,仅在`STORAGE_TYPE``minio`时可用。
1309+
- `MINIO_BUCKET_LOOKUP_TYPE`: **auto**: Minio的bucket查找方式默认为`auto`模式,可将其设置为`dns`(虚拟托管样式)或`path`(路径样式),仅当`STORAGE_TYPE``minio`时可用。
13021310

13031311
### 存储库归档 (`repo-archive`)
13041312

modules/setting/storage.go

+2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ type MinioStorageConfig struct {
4747
InsecureSkipVerify bool `ini:"MINIO_INSECURE_SKIP_VERIFY"`
4848
ChecksumAlgorithm string `ini:"MINIO_CHECKSUM_ALGORITHM" json:",omitempty"`
4949
ServeDirect bool `ini:"SERVE_DIRECT"`
50+
BucketLookUpType string `ini:"MINIO_BUCKET_LOOKUP_TYPE" json:",omitempty"`
5051
}
5152

5253
// Storage represents configuration of storages
@@ -82,6 +83,7 @@ func getDefaultStorageSection(rootCfg ConfigProvider) ConfigSection {
8283
storageSec.Key("MINIO_USE_SSL").MustBool(false)
8384
storageSec.Key("MINIO_INSECURE_SKIP_VERIFY").MustBool(false)
8485
storageSec.Key("MINIO_CHECKSUM_ALGORITHM").MustString("default")
86+
storageSec.Key("MINIO_BUCKET_LOOKUP_TYPE").MustString("auto")
8587
return storageSec
8688
}
8789

modules/storage/minio.go

+16-4
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,23 @@ func NewMinioStorage(ctx context.Context, cfg *setting.Storage) (ObjectStorage,
8585

8686
log.Info("Creating Minio storage at %s:%s with base path %s", config.Endpoint, config.Bucket, config.BasePath)
8787

88+
var lookup minio.BucketLookupType
89+
if config.BucketLookUpType == "auto" || config.BucketLookUpType == "" {
90+
lookup = minio.BucketLookupAuto
91+
} else if config.BucketLookUpType == "dns" {
92+
lookup = minio.BucketLookupDNS
93+
} else if config.BucketLookUpType == "path" {
94+
lookup = minio.BucketLookupPath
95+
} else {
96+
return nil, fmt.Errorf("invalid minio bucket lookup type: %s", config.BucketLookUpType)
97+
}
98+
8899
minioClient, err := minio.New(config.Endpoint, &minio.Options{
89-
Creds: credentials.NewStaticV4(config.AccessKeyID, config.SecretAccessKey, ""),
90-
Secure: config.UseSSL,
91-
Transport: &http.Transport{TLSClientConfig: &tls.Config{InsecureSkipVerify: config.InsecureSkipVerify}},
92-
Region: config.Location,
100+
Creds: credentials.NewStaticV4(config.AccessKeyID, config.SecretAccessKey, ""),
101+
Secure: config.UseSSL,
102+
Transport: &http.Transport{TLSClientConfig: &tls.Config{InsecureSkipVerify: config.InsecureSkipVerify}},
103+
Region: config.Location,
104+
BucketLookup: lookup,
93105
})
94106
if err != nil {
95107
return nil, convertMinioErr(err)

modules/structs/repo.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ type EditRepoOption struct {
217217
Archived *bool `json:"archived,omitempty"`
218218
// set to a string like `8h30m0s` to set the mirror interval time
219219
MirrorInterval *string `json:"mirror_interval,omitempty"`
220-
// enable prune - remove obsolete remote-tracking references
220+
// enable prune - remove obsolete remote-tracking references when mirroring
221221
EnablePrune *bool `json:"enable_prune,omitempty"`
222222
}
223223

options/locale/locale_cs-CZ.ini

-1
Original file line numberDiff line numberDiff line change
@@ -3320,7 +3320,6 @@ mirror_sync_create=synchronizoval/a novou referenci <a href="%[2]s">%[3]s</a> do
33203320
mirror_sync_delete=synchronizoval/a a smazal/a referenci <code>%[2]s</code> v <a href="%[1]s">%[3]s</a> ze zrcadla
33213321
approve_pull_request=`schválil/a <a href="%[1]s">%[3]s#%[2]s</a>`
33223322
reject_pull_request=`navrhl/a změny pro <a href="%[1]s">%[3]s#%[2]s</a>`
3323-
publish_release=`vydal/a <a href="%[2]s"> "%[4]s" </a> v <a href="%[1]s">%[3]s</a>`
33243323
review_dismissed=`zamítl/a posouzení z <b>%[4]s</b> pro <a href="%[1]s">%[3]s#%[2]s</a>`
33253324
review_dismissed_reason=Důvod:
33263325
create_branch=vytvořil/a větev <a href="%[2]s">%[3]s</a> v <a href="%[1]s">%[4]s</a>

options/locale/locale_de-DE.ini

-1
Original file line numberDiff line numberDiff line change
@@ -3329,7 +3329,6 @@ mirror_sync_create=neue Referenz <a href="%[2]s">%[3]s</a> bei <a href="%[1]s">%
33293329
mirror_sync_delete=hat die Referenz des Mirrors <code>%[2]s</code> in <a href="%[1]s">%[3]s</a> synchronisiert und gelöscht
33303330
approve_pull_request=`hat <a href="%[1]s">%[3]s#%[2]s</a> approved`
33313331
reject_pull_request=`schlug Änderungen für <a href="%[1]s">%[3]s#%[2]s</a> vor`
3332-
publish_release=`veröffentlichte Release <a href="%[2]s"> "%[4]s" </a> in <a href="%[1]s">%[3]s</a>`
33333332
review_dismissed=`verwarf das Review von <b>%[4]s</b> in <a href="%[1]s">%[3]s#%[2]s</a>`
33343333
review_dismissed_reason=Grund:
33353334
create_branch=legte den Branch <a href="%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a> an

options/locale/locale_el-GR.ini

-1
Original file line numberDiff line numberDiff line change
@@ -3210,7 +3210,6 @@ mirror_sync_create=συγχρονίστηκε η νέα αναφορά <a href="
32103210
mirror_sync_delete=συγχρόνισε και διάγραψε την αναφορά <code>%[2]s</code> σε <a href="%[1]s">%[3]s</a> από το είδωλο
32113211
approve_pull_request=`ενέκρινε το <a href="%[1]s">%[3]s#%[2]s</a>`
32123212
reject_pull_request=`πρότεινε αλλαγές για το <a href="%[1]s">%[3]s#%[2]s</a>`
3213-
publish_release=`έκδωσε τη <a href="%[2]s"> "%[4]s" </a> στο <a href="%[1]s">%[3]s</a>`
32143213
review_dismissed=`ακύρωσε την εξέταση από <b>%[4]s</b> for <a href="%[1]s">%[3]s#%[2]s</a>`
32153214
review_dismissed_reason=Αιτία:
32163215
create_branch=δημιούργησε το κλαδο <a href="%[2]s">%[3]s</a> στο <a href="%[1]s">%[4]s</a>

options/locale/locale_es-ES.ini

-1
Original file line numberDiff line numberDiff line change
@@ -3193,7 +3193,6 @@ mirror_sync_create=sincronizó la nueva referencia <a href="%[2]s">%[3]s</a> a <
31933193
mirror_sync_delete=sincronizada y eliminada referencia <code>%[2]s</code> en <a href="%[1]s">%[3]s</a> desde réplica
31943194
approve_pull_request=`aprobó <a href="%[1]s">%[3]s#%[2]s</a>`
31953195
reject_pull_request=`sugirió cambios para <a href="%[1]s">%[3]s#%[2]s</a>`
3196-
publish_release=`se lanzó <a href="%[2]s"> "%[4]s" </a> en <a href="%[1]s">%[3]s</a>`
31973196
review_dismissed=`descartó la revisión de <b>%[4]s</b> para <a href="%[1]s">%[3]s#%[2]s</a>`
31983197
review_dismissed_reason=Motivo:
31993198
create_branch=creó rama <a href="%[2]s">%[3]s</a> en <a href="%[1]s">%[4]s</a>

options/locale/locale_fa-IR.ini

-1
Original file line numberDiff line numberDiff line change
@@ -2508,7 +2508,6 @@ mirror_sync_create=مرجع جدید <a href="%[2]s">%[3]s</a> با <a href="%[1
25082508
mirror_sync_delete=از مرجع <code>%[2]s</code> در<a href="%[1]s">%[3]s</a> حذف شده و از قرینه همگام شده
25092509
approve_pull_request=`تأیید <a href="%[1]s">%[3]s#%[2]s</a>`
25102510
reject_pull_request=`تغییرات پیشنهادی برای <a href="%[1]s">%[3]s#%[2]s</a>`
2511-
publish_release=`<a href="%[2]s"> "%[4]s" </a> در <a href="%[1]s">%[3]s</a> منتشر شد`
25122511
review_dismissed=`بازبینی از <b>%[4]s</b> برای <a href="%[1]s">%[3]s#%[2]s</a> رد شد`
25132512
review_dismissed_reason=دلیل:
25142513
create_branch=شاخه <a href="%[2]s">%[3]s</a> در <a href="%[1]s">%[4]s</a> ایجاد کرد

options/locale/locale_fr-FR.ini

-1
Original file line numberDiff line numberDiff line change
@@ -3249,7 +3249,6 @@ mirror_sync_create=a synchronisé la nouvelle référence <a href="%[2]s">%[3]s<
32493249
mirror_sync_delete=a synchronisé puis supprimé la nouvelle référence <code>%[2]s</code> vers <a href="%[1]s">%[3]s</a> depuis le miroir
32503250
approve_pull_request=`a approuvé <a href="%[1]s">%[3]s#%[2]s</a>`
32513251
reject_pull_request=`a suggérés des changements pour <a href="%[1]s">%[3]s#%[2]s</a>`
3252-
publish_release=`a publié <a href="%[2]s"> "%[4]s" </a> dans <a href="%[1]s">%[3]s</a>`
32533252
review_dismissed=`a révoqué l’évaluation de <b>%[4]s</b> dans <a href="%[1]s">%[3]s#%[2]s</a>`
32543253
review_dismissed_reason=Raison :
32553254
create_branch=a créé la branche <a href="%[2]s">%[3]s</a> dans <a href="%[1]s">%[4]s</a>

options/locale/locale_it-IT.ini

-1
Original file line numberDiff line numberDiff line change
@@ -2707,7 +2707,6 @@ mirror_sync_create=ha sincronizzato un nuovo riferimento <a href="%[2]s">%[3]s</
27072707
mirror_sync_delete=riferimento sincronizzato ed eliminato <code>%[2]s</code> a <a href="%[1]s">%[3]s</a> dal mirror
27082708
approve_pull_request=`ha approvato <a href="%[1]s">%[3]s#%[2]s</a>`
27092709
reject_pull_request=`ha suggerito modifiche per <a href="%[1]s">%[3]s#%[2]s</a>`
2710-
publish_release=`ha rilasciato <a href="%[2]s"> "%[4]s" </a> su <a href="%[1]s">%[3]s</a>`
27112710
review_dismissed=`respinta la recensione da <b>%[4]s</b> per <a href="%[1]s">%[3]s#%[2]s</a>`
27122711
review_dismissed_reason=Motivo:
27132712
create_branch=ha creato il ramo <a href="%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a>

options/locale/locale_ja-JP.ini

-1
Original file line numberDiff line numberDiff line change
@@ -3344,7 +3344,6 @@ mirror_sync_create=が <a href="%[1]s">%[4]s</a> の新しい参照 <a href="%[2
33443344
mirror_sync_delete=が <a href="%[1]s">%[3]s</a> の参照 <code>%[2]s</code> をミラーから反映し、削除しました
33453345
approve_pull_request=`が <a href="%[1]s">%[3]s#%[2]s</a> を承認しました`
33463346
reject_pull_request=`が <a href="%[1]s">%[3]s#%[2]s</a>について変更を提案しました`
3347-
publish_release=`が <a href="%[1]s">%[3]s</a> の <a href="%[2]s"> "%[4]s" </a> をリリースしました`
33483347
review_dismissed=`が <b>%[4]s</b> の <a href="%[1]s">%[3]s#%[2]s</a> へのレビューを棄却しました`
33493348
review_dismissed_reason=理由:
33503349
create_branch=がブランチ <a href="%[2]s">%[3]s</a> を <a href="%[1]s">%[4]s</a> に作成しました

0 commit comments

Comments
 (0)