{"record":{"id":"7878b7f278f86e90","repo":"cloudreve/cloudreve","slug":"failed-to-initialize-multipart-upload-w-7878b7","errorCode":null,"errorMessage":"failed to initialize multipart upload: %w","messagePattern":"failed to initialize multipart upload: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/filemanager/driver/obs/obs.go","lineNumber":447,"sourceCode":"\t}\n\tcallbackPolicyEncoded := base64.StdEncoding.EncodeToString(callbackPolicyJSON)\n\n\tmimeType := file.Props.MimeType\n\tif mimeType == \"\" {\n\t\td.mime.TypeByName(file.Props.Uri.Name())\n\t}\n\n\timur, err := d.obs.InitiateMultipartUpload(&obs.InitiateMultipartUploadInput{\n\t\tObjectOperationInput: obs.ObjectOperationInput{\n\t\t\tBucket: d.policy.BucketName,\n\t\t\tKey:    file.Props.SavePath,\n\t\t},\n\t\tHttpHeader: obs.HttpHeader{\n\t\t\tContentType: mimeType,\n\t\t},\n\t}, obs.WithRequestContext(ctx))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to initialize multipart upload: %w\", err)\n\t}\n\tuploadSession.UploadID = imur.UploadId\n\n\t// 为每个分片签名上传 URL\n\tchunks := chunk.NewChunkGroup(file, d.chunkSize, &backoff.ConstantBackoff{}, false, d.l, \"\")\n\turls := make([]string, chunks.Num())\n\tttl := int64(time.Until(uploadSession.Props.ExpireAt).Seconds())\n\tfor chunks.Next() {\n\t\terr := chunks.Process(func(c *chunk.ChunkGroup, chunk io.Reader) error {\n\t\t\tsignedURL, err := d.obs.CreateSignedUrl(&obs.CreateSignedUrlInput{\n\t\t\t\tMethod: obs.HttpMethodPut,\n\t\t\t\tBucket: d.policy.BucketName,\n\t\t\t\tKey:    file.Props.SavePath,\n\t\t\t\tQueryParams: map[string]string{\n\t\t\t\t\tpartNumberParam: strconv.Itoa(c.Index() + 1),\n\t\t\t\t\tuploadIdParam:   uploadSession.UploadID,\n\t\t\t\t},\n\t\t\t\tExpires: int(ttl),","sourceCodeStart":429,"sourceCodeEnd":465,"githubUrl":"https://github.com/cloudreve/cloudreve/blob/20c95ad73f3a8bcb72887fea91ff31ab24fa1011/pkg/filemanager/driver/obs/obs.go#L429-L465","documentation":"Error \"failed to initialize multipart upload: %w\" thrown in cloudreve/cloudreve.","triggerScenarios":"Thrown at pkg/filemanager/driver/obs/obs.go:447 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"20c95ad73f3a8bcb72887fea91ff31ab24fa1011","analyzedAt":"2026-08-16T01:42:55.403Z","schemaVersion":2},"datasetVersion":"2026-08-16T03:17:38.424Z"}