Bläddra i källkod

feat: 对象存储新增 Region 配置 (#128)

Ruan HongChao 4 månader sedan
förälder
incheckning
5387c4f31f
3 ändrade filer med 14 tillägg och 1 borttagningar
  1. 5 1
      entity/s3_config.go
  2. 1 0
      web/save.go
  3. 8 0
      web/writing.html

+ 5 - 1
entity/s3_config.go

@@ -20,6 +20,7 @@ type S3Config struct {
 	AccessKey  string
 	SecretKey  string
 	BucketName string
+	Region     string
 }
 
 var ErrS3Empty = errors.New("s3 config is empty")
@@ -51,7 +52,10 @@ func (s3Config S3Config) getSession() (*session.Session, error) {
 	}
 
 	region := "cn-north-1"
-	if strings.HasSuffix(s3Config.Endpoint, "amazonaws.com") {
+	// 优先使用配置的Region
+	if s3Config.Region != "" {
+		region = s3Config.Region
+	} else if strings.HasSuffix(s3Config.Endpoint, "amazonaws.com") {
 		sp := strings.Split(s3Config.Endpoint, ".")
 		if len(sp) > 1 {
 			region = sp[1]

+ 1 - 0
web/save.go

@@ -102,6 +102,7 @@ func Save(writer http.ResponseWriter, request *http.Request) {
 	conf.AccessKey = strings.TrimSpace(request.FormValue("AccessKey"))
 	conf.SecretKey = strings.TrimSpace(request.FormValue("SecretKey"))
 	conf.BucketName = strings.TrimSpace(request.FormValue("BucketName"))
+	conf.Region = strings.TrimSpace(request.FormValue("Region"))
 
 	if conf.SecretKey != "" && conf.SecretKey != oldConf.SecretKey {
 		secretKey, err := util.EncryptByEncryptKey(conf.EncryptKey, conf.SecretKey)

+ 8 - 0
web/writing.html

@@ -257,6 +257,14 @@
                 </div>
               </div>
 
+              <div class="form-group row">
+                <label for="Region" class="col-sm-2 col-form-label">Region</label>
+                <div class="col-sm-10">
+                  <input class="form-control" name="Region" id="Region" value="{{.Region}}" aria-describedby="Region_help">
+                  <small id="Region_help" class="form-text text-muted">可选,如果为空将自动从 Endpoint 推断区域,默认使用 cn-north-1</small>
+                </div>
+              </div>
+
             </div>
           </div>