(writer *multipart.Writer, stream stream.Stream, contentType string)
| 120 | } |
| 121 | |
| 122 | func (c DuClient) writeMultipartForm(writer *multipart.Writer, stream stream.Stream, contentType string) error { |
| 123 | filePart := textproto.MIMEHeader{} |
| 124 | filePart.Set("Content-Disposition", fmt.Sprintf(`form-data; name="file"; filename="%s"`, stream.Name())) |
| 125 | filePart.Set("Content-Type", contentType) |
| 126 | w, err := writer.CreatePart(filePart) |
| 127 | if err != nil { |
| 128 | return fmt.Errorf("Error creating form field 'file': %w", err) |
| 129 | } |
| 130 | data, err := stream.Data() |
| 131 | if err != nil { |
| 132 | return err |
| 133 | } |
| 134 | defer func() { _ = data.Close() }() |
| 135 | _, err = io.Copy(w, data) |
| 136 | if err != nil { |
| 137 | return fmt.Errorf("Error writing form field 'file': %w", err) |
| 138 | } |
| 139 | return nil |
| 140 | } |
| 141 | |
| 142 | func (c DuClient) progressReader(text string, completedText string, reader io.Reader, length int64, progressBar *visualization.ProgressBar) io.Reader { |
| 143 | if length < 10*1024*1024 { |
no test coverage detected