#1489 bugfix补丁分支合入develop

Merged
lewis merged 5 commits from bugfix into develop 2 years ago
  1. +3
    -0
      models/repo.go
  2. +2
    -2
      modules/storage/obs.go
  3. +4
    -0
      modules/structs/repo.go
  4. +3
    -0
      modules/validation/binding.go
  5. +1
    -0
      routers/api/v1/repo/repo.go
  6. +1
    -1
      routers/repo/attachment.go
  7. +11
    -1
      web_src/js/components/ObsUploader.vue

+ 3
- 0
models/repo.go View File

@@ -1133,6 +1133,9 @@ func IsUsableRepoAlias(name string) error {

// CreateRepository creates a repository for the user/organization.
func CreateRepository(ctx DBContext, doer, u *User, repo *Repository, opts ...CreateRepoOptions) (err error) {
if repo.Alias == "" {
repo.Alias = repo.Name
}
repo.LowerAlias = strings.ToLower(repo.Alias)
if err = IsUsableRepoName(repo.Name); err != nil {
return err


+ 2
- 2
modules/storage/obs.go View File

@@ -57,8 +57,8 @@ func ObsHasObject(path string) (bool, error) {
return hasObject, nil
}

func GetObsPartInfos(uuid string, uploadID string) (string, error) {
key := strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, uuid)), "/")
func GetObsPartInfos(uuid, uploadID, fileName string) (string, error) {
key := strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, fileName)), "/")

output, err := ObsCli.ListParts(&obs.ListPartsInput{
Bucket: setting.Bucket,


+ 4
- 0
modules/structs/repo.go View File

@@ -100,6 +100,10 @@ type CreateRepoOption struct {
// required: true
// unique: true
Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(100)"`
// Alias of the repository to create
// required: false
// unique: true
Alias string `json:"alias" binding:"AlphaDashDotChinese;MaxSize(100)"`
// Description of the repository to create
Description string `json:"description" binding:"MaxSize(255)"`
// Whether the repository is private


+ 3
- 0
modules/validation/binding.go View File

@@ -128,6 +128,9 @@ func addAlphaDashDotChineseRule() {
return strings.HasPrefix(rule, "AlphaDashDotChinese")
},
IsValid: func(errs binding.Errors, name string, val interface{}) (bool, binding.Errors) {
if val == "" {
return true, errs
}
if !ValidAlphaDashDotChinese(fmt.Sprintf("%v", val)) {
errs.Add([]string{name}, ErrAlphaDashDotChinese, "ErrAlphaDashDotChinese")
return false, errs


+ 1
- 0
routers/api/v1/repo/repo.go View File

@@ -232,6 +232,7 @@ func CreateUserRepo(ctx *context.APIContext, owner *models.User, opt api.CreateR
}
repo, err := repo_service.CreateRepository(ctx.User, owner, models.CreateRepoOptions{
Name: opt.Name,
Alias: opt.Alias,
Description: opt.Description,
IssueLabels: opt.IssueLabels,
Gitignores: opt.Gitignores,


+ 1
- 1
routers/repo/attachment.go View File

@@ -542,7 +542,7 @@ func GetSuccessChunks(ctx *context.Context) {
log.Error("GetPartInfos failed:%v", err.Error())
}
} else {
chunks, err = storage.GetObsPartInfos(fileChunk.UUID, fileChunk.UploadID)
chunks, err = storage.GetObsPartInfos(fileChunk.UUID, fileChunk.UploadID, fileName)
if err != nil {
log.Error("GetObsPartInfos failed:%v", err.Error())
}


+ 11
- 1
web_src/js/components/ObsUploader.vue View File

@@ -350,6 +350,16 @@ export default {
etags[currentChunk] = res.headers.etag;
}

async function uploadMinioNewMethod(url,e){
var xhr = new XMLHttpRequest();
xhr.open('PUT', url, false);
xhr.setRequestHeader('Content-Type', '')
xhr.send(e.target.result);
var etagValue = xhr.getResponseHeader('ETag');
//console.log(etagValue);
etags[currentChunk] = etagValue;
}

async function updateChunk(currentChunk) {
await axios.post(
'/attachments/update_chunk',
@@ -372,7 +382,7 @@ export default {
await getUploadChunkUrl(currentChunk, partSize);
if (urls[currentChunk] != '') {
// 上传到minio
await uploadMinio(urls[currentChunk], e);
await uploadMinioNewMethod(urls[currentChunk], e);
if (etags[currentChunk] != '') {
// 更新数据库:分片上传结果
//await updateChunk(currentChunk);


Loading…
Cancel
Save