Commit edb7ec1f authored by Jacob Vosmaer's avatar Jacob Vosmaer

Make upload filter code more uniform

parent 71cd15d1
...@@ -125,25 +125,21 @@ func (rew *rewriter) handleFilePart(ctx context.Context, name string, p *multipa ...@@ -125,25 +125,21 @@ func (rew *rewriter) handleFilePart(ctx context.Context, name string, p *multipa
opts.TempFilePrefix = filename opts.TempFilePrefix = filename
var inputReader io.Reader var inputReader io.Reader
if exif.IsExifFile(filename) { var err error
log.WithContextFields(ctx, log.Fields{ switch {
"filename": filename, case exif.IsExifFile(filename):
}).Print("running exiftool to remove any metadata") inputReader, err = handleExifUpload(ctx, p, filename)
cleaner, err := exif.NewCleaner(ctx, p)
if err != nil { if err != nil {
return fmt.Errorf("failed to start EXIF metadata cleaner: %v", err) return err
}
inputReader = cleaner
} else {
inputReader = p
} }
case rew.preauth.ProcessLsif:
inputReader, err := rew.handleLsifUpload(ctx, inputReader, opts.LocalTempPath, filename) inputReader, err = handleLsifUpload(ctx, p, opts.LocalTempPath, filename)
if err != nil { if err != nil {
return err return err
} }
default:
inputReader = p
}
fh, err := filestore.SaveFileFromReader(ctx, inputReader, -1, opts) fh, err := filestore.SaveFileFromReader(ctx, inputReader, -1, opts)
if err != nil { if err != nil {
...@@ -170,8 +166,15 @@ func (rew *rewriter) handleFilePart(ctx context.Context, name string, p *multipa ...@@ -170,8 +166,15 @@ func (rew *rewriter) handleFilePart(ctx context.Context, name string, p *multipa
return rew.filter.ProcessFile(ctx, name, fh, rew.writer) return rew.filter.ProcessFile(ctx, name, fh, rew.writer)
} }
func (rew *rewriter) handleLsifUpload(ctx context.Context, reader io.Reader, tempPath, filename string) (io.Reader, error) { func handleExifUpload(ctx context.Context, r io.Reader, filename string) (io.Reader, error) {
if rew.preauth.ProcessLsif { log.WithContextFields(ctx, log.Fields{
"filename": filename,
}).Print("running exiftool to remove any metadata")
return exif.NewCleaner(ctx, r)
}
func handleLsifUpload(ctx context.Context, reader io.Reader, tempPath, filename string) (io.Reader, error) {
p, err := parser.NewParser(reader, tempPath) p, err := parser.NewParser(reader, tempPath)
if err != nil { if err != nil {
return nil, err return nil, err
...@@ -189,9 +192,6 @@ func (rew *rewriter) handleLsifUpload(ctx context.Context, reader io.Reader, tem ...@@ -189,9 +192,6 @@ func (rew *rewriter) handleLsifUpload(ctx context.Context, reader io.Reader, tem
} }
return z, nil return z, nil
}
return reader, nil
} }
func (rew *rewriter) copyPart(ctx context.Context, name string, p *multipart.Part) error { func (rew *rewriter) copyPart(ctx context.Context, name string, p *multipart.Part) error {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment