drone/registry/app/api/handler/utils/request.go
Tudor Macari 2d385d1137 feat: [AH-1198]: Avoid loading artifact to memory or on disk. (#3688)
* resolve PR comments
* fix lint issue
* fix mapping to ArtifactMetadata
* fix lint issues
* feat: [AH-1198]: Avoid loading artifact to memory or on disk.
2025-04-17 09:35:07 +00:00

48 lines
1.1 KiB
Go

// Copyright 2023 Harness, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package utils
import (
"errors"
"fmt"
"io"
"mime/multipart"
"net/http"
)
func GetFileReader(r *http.Request, formKey string) (*multipart.Part, string, error) {
reader, err := r.MultipartReader()
if err != nil {
return nil, "", err
}
for {
part, err := reader.NextPart()
if errors.Is(err, io.EOF) {
break
}
if err != nil {
return nil, "", err
}
if part.FormName() == formKey {
filename := part.FileName()
return part, filename, nil
}
}
return nil, "", fmt.Errorf("file not found in request")
}