diff --git a/CHANGELOG.md b/CHANGELOG.md
index 627b1a1b742f3c4f9cc3eb6b27e4d423740f79f7..582fafee930bfde390450d56cc2d00bc4ed424c8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,6 +17,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 * Fixed photo oEmbed URL previews (Giphy).
 * Fixed orientation parsing for some thumbnails.
 * Fixed file name being incorrect on the first download from remote servers.
+* Fixed a download inefficiency where remote downloads could use extra bandwidth.
 
 ## [1.2.4] - March 5th, 2021
 
diff --git a/controllers/download_controller/download_resource_handler.go b/controllers/download_controller/download_resource_handler.go
index cbaad5d7cc35de91da8d401d12ddd6b45f14f7be..1c8ef15ba89ed5e287a4e47225e80939fa6f1ff2 100644
--- a/controllers/download_controller/download_resource_handler.go
+++ b/controllers/download_controller/download_resource_handler.go
@@ -134,7 +134,18 @@ func downloadResourceWorkFn(request *resource_handler.WorkRequest) interface{} {
 	persistFile := func(fileStream io.ReadCloser) *workerDownloadResponse {
 		defer cleanup.DumpAndCloseStream(fileStream)
 		userId := upload_controller.NoApplicableUploadUser
-		media, err := upload_controller.StoreDirect(nil, fileStream, downloaded.ContentLength, downloaded.ContentType, downloaded.DesiredFilename, userId, info.origin, info.mediaId, common.KindRemoteMedia, ctx, true)
+
+		ms := stream.NewMemStream()
+		io.Copy(ms, fileStream)
+		ms.Close()
+
+		st, err := ms.NextReader()
+		if err != nil {
+			ctx.Log.Error("Unexpected error persisting file: ", err)
+			return &workerDownloadResponse{err: err}
+		}
+
+		media, err := upload_controller.StoreDirect(nil, st, downloaded.ContentLength, downloaded.ContentType, downloaded.DesiredFilename, userId, info.origin, info.mediaId, common.KindRemoteMedia, ctx, true)
 		if err != nil {
 			ctx.Log.Error("Error persisting file: ", err)
 			return &workerDownloadResponse{err: err}
@@ -145,6 +156,7 @@ func downloadResourceWorkFn(request *resource_handler.WorkRequest) interface{} {
 			media: media,
 			contentType: media.ContentType,
 			filename: media.UploadName,
+			stream: ms,
 		}
 	}