{"record":{"id":"cc927d403ad1cc92","repo":"cloudreve/cloudreve","slug":"failed-to-generate-presigned-upload-url-for-chunk","errorCode":null,"errorMessage":"failed to generate presigned upload url for chunk %d: %w","messagePattern":"failed to generate presigned upload url for chunk (.+?): %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/filemanager/driver/ks3/ks3.go","lineNumber":443,"sourceCode":"\t\terr := chunks.Process(func(c *chunk.ChunkGroup, chunk io.Reader) error {\n\t\t\t// 计算过期时间（秒）\n\t\t\texpireSeconds := int(time.Until(uploadSession.Props.ExpireAt).Seconds())\n\t\t\tpartNumber := c.Index() + 1\n\n\t\t\t// 生成预签名URL\n\t\t\tsignedURL, err := handler.svc.GeneratePresignedUrl(&s3.GeneratePresignedUrlInput{\n\t\t\t\tHTTPMethod: s3.PUT,\n\t\t\t\tBucket:     &handler.policy.BucketName,\n\t\t\t\tKey:        &uploadSession.Props.SavePath,\n\t\t\t\tExpires:    int64(expireSeconds),\n\t\t\t\tParameters: map[string]*string{\n\t\t\t\t\t\"partNumber\": aws.String(strconv.Itoa(partNumber)),\n\t\t\t\t\t\"uploadId\":   res.UploadID,\n\t\t\t\t},\n\t\t\t\tContentType: aws.String(\"application/octet-stream\"),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to generate presigned upload url for chunk %d: %w\", partNumber, err)\n\t\t\t}\n\t\t\turls[c.Index()] = signedURL\n\t\t\treturn nil\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// 签名完成分片上传的请求URL\n\texpireSeconds := int(time.Until(uploadSession.Props.ExpireAt).Seconds())\n\tsignedURL, err := handler.svc.GeneratePresignedUrl(&s3.GeneratePresignedUrlInput{\n\t\tHTTPMethod: s3.POST,\n\t\tBucket:     &handler.policy.BucketName,\n\t\tKey:        &file.Props.SavePath,\n\t\tExpires:    int64(expireSeconds),\n\t\tParameters: map[string]*string{\n\t\t\t\"uploadId\": res.UploadID,","sourceCodeStart":425,"sourceCodeEnd":461,"githubUrl":"https://github.com/cloudreve/cloudreve/blob/20c95ad73f3a8bcb72887fea91ff31ab24fa1011/pkg/filemanager/driver/ks3/ks3.go#L425-L461","documentation":"Error \"failed to generate presigned upload url for chunk %d: %w\" thrown in cloudreve/cloudreve.","triggerScenarios":"Thrown at pkg/filemanager/driver/ks3/ks3.go:443 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"}