MCPcopy Create free account
hub / github.com/OpenCSGs/csghub-server / buildObjectResponse

Method buildObjectResponse

component/git_http.go:254–295  ·  view source on GitHub ↗
(ctx context.Context, req types.BatchRequest, pointer types.Pointer, download, upload bool, err *types.ObjectError)

Source from the content-addressed store, hash-verified

252}
253
254func (c *GitHTTPComponent) buildObjectResponse(ctx context.Context, req types.BatchRequest, pointer types.Pointer, download, upload bool, err *types.ObjectError) *types.ObjectResponse {
255 rep := &types.ObjectResponse{Pointer: pointer}
256 if err != nil {
257 rep.Error = err
258 } else {
259 rep.Actions = make(map[string]*types.Link)
260
261 header := make(map[string]string)
262
263 if len(req.Authorization) > 0 {
264 header["Authorization"] = req.Authorization
265 }
266
267 if download {
268 var link *types.Link
269 reqParams := make(url.Values)
270 objectKey := path.Join("lfs", pointer.RelativePath())
271 url, err := c.s3Client.PresignedGetObject(ctx, c.config.S3.Bucket, objectKey, ossFileExpireSeconds, reqParams)
272 if url != nil && err == nil {
273 delete(header, "Authorization")
274 link = &types.Link{Href: url.String(), Header: header}
275 }
276 if link == nil {
277 link = &types.Link{Href: c.buildDownloadLink(req, pointer), Header: header}
278 }
279 rep.Actions["download"] = link
280 }
281 if upload {
282 rep.Actions["upload"] = &types.Link{Href: c.buildUploadLink(req, pointer), Header: header}
283
284 verifyHeader := make(map[string]string)
285 for key, value := range header {
286 verifyHeader[key] = value
287 }
288
289 verifyHeader["Accept"] = types.LfsMediaType
290
291 rep.Actions["verify"] = &types.Link{Href: c.buildVerifyLink(req), Header: verifyHeader}
292 }
293 }
294 return rep
295}
296
297func (c *GitHTTPComponent) LfsUpload(ctx context.Context, body io.ReadCloser, req types.UploadRequest) error {
298 var exists bool

Callers 1

BuildObjectResponseMethod · 0.95

Calls 5

buildDownloadLinkMethod · 0.95
buildUploadLinkMethod · 0.95
buildVerifyLinkMethod · 0.95
PresignedGetObjectMethod · 0.80
RelativePathMethod · 0.45

Tested by

no test coverage detected