Skip to content

Commit b9d173b

Browse files
authored
Revert "fix: Resumed Uploads start at the beginning of the file (#7)"
This reverts commit 805537c.
1 parent 805537c commit b9d173b

File tree

2 files changed

+12
-18
lines changed

2 files changed

+12
-18
lines changed

Sources/MuxUploadSDK/Upload/ChunkedFileUploader.swift

+9-15
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class ChunkedFileUploader {
2222
private var _currentState: InternalUploadState = .ready
2323
private var overallProgress: Progress = Progress()
2424
private var lastSeenUpdate: InternalUploadState? = nil
25-
private var lastReadCount: UInt64 = 0
25+
private var lastByte: UInt64 = 0
2626

2727
func addDelegate(withToken token: Int, _ delegate: ChunkedFileUploaderDelegate) {
2828
delegates.updateValue(delegate, forKey: token)
@@ -87,6 +87,8 @@ class ChunkedFileUploader {
8787
let task = Task.detached { [self] in
8888
do {
8989
// It's fine if it's already open, that's handled by ignoring the call
90+
try file.openFile(fileURL: uploadInfo.videoFile)
91+
try file.seekTo(byte: lastByte)
9092
let result = try await makeWorker().performUpload()
9193
file.close()
9294

@@ -101,14 +103,14 @@ class ChunkedFileUploader {
101103
if let lastUpdate = lastSeenUpdate {
102104
switch lastUpdate {
103105
case .uploading(let update): do {
104-
if lastReadCount > 0 {
105-
lastReadCount = UInt64(update.progress.completedUnitCount)
106+
if lastByte > 0 {
107+
lastByte = UInt64(update.progress.completedUnitCount)
106108
}
107109
}
108110
default: break
109111
}
110112
}
111-
let uploadError = InternalUploaderError(reason: error, lastByte: lastReadCount)
113+
let uploadError = InternalUploaderError(reason: error, lastByte: lastByte)
112114
notifyStateFromWorker(.failure(uploadError))
113115
}
114116

@@ -120,8 +122,7 @@ class ChunkedFileUploader {
120122
return Worker(
121123
uploadInfo: uploadInfo,
122124
chunkedFile: file,
123-
progress: overallProgress,
124-
startByte: lastReadCount
125+
progress: overallProgress
125126
) { progress, startTime, eventTime in
126127
let update = Update(
127128
progress: progress,
@@ -148,7 +149,7 @@ class ChunkedFileUploader {
148149

149150
if case .uploading(let update) = state {
150151
let count = update.progress.completedUnitCount
151-
lastReadCount = UInt64(count)
152+
lastByte = UInt64(count)
152153
}
153154

154155
for delegate in delegates.values {
@@ -174,7 +175,7 @@ class ChunkedFileUploader {
174175
init(uploadInfo: UploadInfo, file: ChunkedFile, startingByte: UInt64 = 0) {
175176
self.uploadInfo = uploadInfo
176177
self.file = file
177-
self.lastReadCount = startingByte
178+
self.lastByte = startingByte
178179
}
179180

180181
enum InternalUploadState {
@@ -213,19 +214,14 @@ fileprivate actor Worker {
213214
private let chunkedFile: ChunkedFile
214215
private let overallProgress: Progress
215216
private let progressHandler: ProgressHandler
216-
private let startingReadCount: UInt64
217217

218218
func performUpload() async throws -> ChunkedFileUploader.Update {
219-
try chunkedFile.openFile(fileURL: uploadInfo.videoFile)
220-
try chunkedFile.seekTo(byte: startingReadCount)
221-
222219
let startTime = Date().timeIntervalSince1970
223220

224221
let fileSize = chunkedFile.fileSize
225222
let wideFileSize = Int64(fileSize)
226223
overallProgress.totalUnitCount = wideFileSize
227224
overallProgress.isCancellable = false
228-
overallProgress.completedUnitCount = Int64(startingReadCount)
229225

230226
var readBytes: Int
231227
repeat {
@@ -276,13 +272,11 @@ fileprivate actor Worker {
276272
uploadInfo: UploadInfo,
277273
chunkedFile: ChunkedFile,
278274
progress: Progress,
279-
startByte: UInt64,
280275
_ progressHandler: @escaping ProgressHandler
281276
) {
282277
self.uploadInfo = uploadInfo
283278
self.chunkedFile = chunkedFile
284279
self.progressHandler = progressHandler
285280
self.overallProgress = progress
286-
self.startingReadCount = startByte
287281
}
288282
}

apps/Test App/Test App/Screens/UploadScreenViewModel.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class UploadScreenViewModel: ObservableObject {
3030

3131
}
3232

33-
let PUT_URL = "https://storage.googleapis.com/video-storage-gcp-us-east4-vop1-uploads/4OAV5fGb8RMf2ElvbeLz8I?Expires=1680807117&GoogleAccessId=uploads-gcp-us-east1-vop1%40mux-video-production.iam.gserviceaccount.com&Signature=dOFesy7mXnbKnytmdDsFKCVVZ6lW12JvPsTPOxSn0egin4WD6hVOQpTAmc3XycR%2F7OkoYKnTV6wauec9mrjLkOF4fdGuHUC76YZTMhezUFxNZYkEkf7rniRRUuiuJp%2B5IZvCdkYX0VfNMUDHG1pzi8XvEVN1evLI6CoA%2F6OPUJOtMC%2BX%2FTLlHUvFVzwPk06CzzjYer7ZE3O72UMtXFEAs4QAsf0L3eTfWJav4si%2F6F1Y3BgO4ypG7zKmStxsvQNa%2F71DlIwxo%2BO0n2iJFfh48te9kvI%2B7cqsgb7aaQcLIotJ040Jps5mRDlC5Q35yRIWhxRNmCfSLRnLUB1104SNwQ%3D%3D&upload_id=ADPycdu7bDavvtbJw3M9ukiH30zs06Ql-Twu7EHWfSKb48kvXU6Xd2Zn4EgBteTLwE3A0KrQEGg2H7p9rRKUX9D_Kt7OU_DHcGl4"
33+
let PUT_URL = "https://storage.googleapis.com/video-storage-gcp-us-east4-vop1-uploads/KmgByhv1MfRPismF8kPK3G?Expires=1678317874&GoogleAccessId=uploads-gcp-us-east1-vop1%40mux-video-production.iam.gserviceaccount.com&Signature=L%2BrmPZ2LW%2FOHrvXops0V%2Bp8AYuGRV3CkLywUl5lNdhWTQe3Iz85WXnDCLmAWnTNmiGVx3RWtAf5zRJ0Ahgcaz7hkq7kPpvUgx2NRzLukSeRix9CHowcshgqI8eQEtSx7HKxD8E2%2Boh0ur7tldNDCjBoTofg7yEzSu%2F2pqPp3qySf3nnjdbI86miKmLEK7d1YO431L3Ai5N6axWA9pR78cgrq7X48%2FqhDHmITtqRwx%2Baossr2Jar9FRY2PLFIHFawnyKbYGfmGHwDIR%2FCaqOFTUlnSKpbFJ5BZPGCu2HQVZbhuBSrWthg34hczlFT0K5410MMksyLXn8j0LC%2B757cQw%3D%3D&upload_id=ADPycdv6m_6zr0XH6-0w2EdY2wZzspZ1ofLu-2l9e64ni24k-FX66g31mkyHcawdRv5ITVksYpwJUU6VKblDkq143jKR"
3434

3535
@Published
3636
var uploadScreenState: AppUploadState = .not_started
@@ -128,12 +128,12 @@ class UploadScreenViewModel: ObservableObject {
128128
session.exportAsynchronously {
129129
DispatchQueue.main.async {
130130
NSLog("Yay, Media exported & ready for upload!")
131-
self.beginUploadToMux(videoFile: outFile)
131+
self.beginMuxUpload(videoFile: outFile)
132132
}
133133
}
134134
}
135135

136-
private func beginUploadToMux(videoFile: URL) {
136+
private func beginMuxUpload(videoFile: URL) {
137137
let upload = MuxUpload(
138138
uploadURL: URL(string: PUT_URL)!,
139139
videoFileURL: videoFile,

0 commit comments

Comments
 (0)