Это на самом деле связано с go-tus
клиентом .
Пример Cloudflare создает tus.Upload
из *os.File
, но вместо того, чтобы пытаться "преобразовать" ваш multipart.File
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *1013* * * * * * * Вы должны рассмотреть эти две:
func NewUpload(reader io.Reader, size int64, metadata Metadata, fingerprint string) *Upload
func NewUploadFromBytes(b []byte) *Upload
Учитывая, что multipart.File
реализует интерфейс io.Reader
, вы можете использовать оба из них.Что лучше всего, зависит от вашего варианта использования, но если размер загружаемых файлов превышает несколько десятков КБ, вам действительно нужно NewUpload
.NewUploadFromBytes
вынуждает вас сначала прочитать весь файл в память.
Если вам нужно вдохновение для того, что должны содержать аргументы size
, metadata
и fingerprint
, посмотрите на реализация NewUploadFromFile
.