image_data.go 912 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package imagedata
  2. import (
  3. "context"
  4. "sync"
  5. "github.com/imgproxy/imgproxy/v3/imagetype"
  6. )
  7. type ImageData struct {
  8. Type imagetype.Type
  9. Data []byte
  10. Headers map[string]string
  11. cancel context.CancelFunc
  12. cancelOnce sync.Once
  13. }
  14. func (d *ImageData) Close() {
  15. d.cancelOnce.Do(func() {
  16. if d.cancel != nil {
  17. d.cancel()
  18. }
  19. })
  20. }
  21. func (d *ImageData) SetCancel(cancel context.CancelFunc) {
  22. d.cancel = cancel
  23. }
  24. // func Init() error {
  25. // if err := initDownloading(); err != nil {
  26. // return err
  27. // }
  28. // return nil
  29. // }
  30. // func Download(ctx context.Context, imageURL, desc string, opts DownloadOptions, secopts security.Options) (*ImageData, error) {
  31. // imgdata, err := download(ctx, imageURL, opts, secopts)
  32. // if err != nil {
  33. // return nil, ierrors.Wrap(
  34. // err, 0,
  35. // ierrors.WithPrefix(fmt.Sprintf("Can't download %s", desc)),
  36. // )
  37. // }
  38. // return From(imgdata), nil
  39. // }