@@ -155,6 +155,7 @@ func (u *UploaderService) UploadReplay(sid, replayPath string) error {
155
155
logger .Errorf ("Retrieve session %s detail failed: %s" , sid , err )
156
156
return err
157
157
}
158
+ u .recordingSessionLifecycleReplay (sid , model .ReplayUploadStart , "" )
158
159
today := sess .DateStart .UTC ().Format (dateTimeFormat )
159
160
absGzFile := replayPath
160
161
if ! isGzipFile (absGzFile ) {
@@ -169,20 +170,29 @@ func (u *UploaderService) UploadReplay(sid, replayPath string) error {
169
170
replayBackend := u .getReplayBackend ()
170
171
gzFilename := filepath .Base (absGzFile )
171
172
target := strings .Join ([]string {today , gzFilename }, "/" )
172
- err = replayBackend .Upload (absGzFile , target )
173
173
replayBackendName := replayBackend .TypeName ()
174
+ if replayBackendName == "null" {
175
+ reason := string (model .ReasonErrNullStorage )
176
+ u .recordingSessionLifecycleReplay (sid , model .ReplayUploadFailure , reason )
177
+ _ = os .Remove (absGzFile )
178
+ return nil
179
+ }
180
+
181
+ err = replayBackend .Upload (absGzFile , target )
174
182
if err != nil && replayBackendName != "server" {
183
+ u .recordingSessionLifecycleReplay (sid , model .ReplayUploadFailure , err .Error ())
175
184
logger .Errorf ("Uploader service replay backend %s error %s" , replayBackendName , err )
176
185
logger .Error ("Switch default server to upload replay %s." , absGzFile )
177
186
replayBackendName = "server"
187
+ u .recordingSessionLifecycleReplay (sid , model .ReplayUploadStart , "" )
178
188
err = u .apiClient .Upload (sid , absGzFile )
179
189
}
180
190
if err != nil {
191
+ u .recordingSessionLifecycleReplay (sid , model .ReplayUploadFailure , err .Error ())
181
192
logger .Errorf ("Uploader service replay %s uploaded error: %s" , absGzFile , err )
182
193
return err
183
194
}
184
195
logger .Infof ("Uploader service replay file %s upload to %s" , absGzFile , replayBackendName )
185
-
186
196
if _ , err = u .apiClient .FinishReply (sid ); err != nil {
187
197
logger .Errorf ("Finish %s replay api failed: %s" , sid , err )
188
198
return err
@@ -208,13 +218,16 @@ func (u *UploaderService) UploadRemainReplays(replayDir string) (ret RemainRepla
208
218
logger .Debugf ("Upload Remain %d replay files" , len (allRemainReplays ))
209
219
for replayPath := range allRemainReplays {
210
220
remainReplay := allRemainReplays [replayPath ]
221
+ u .recordingSessionLifecycleReplay (remainReplay .Id , model .ReplayUploadStart , "" )
211
222
if err := u .uploadRemainReplay (& remainReplay ); err != nil {
212
223
logger .Errorf ("Uploader service clean remain replay %s failed: %s" ,
213
224
replayPath , err )
214
225
failureFiles = append (failureFiles , replayPath )
215
226
failureErrs = append (failureErrs , err .Error ())
227
+ u .recordingSessionLifecycleReplay (remainReplay .Id , model .ReplayUploadFailure , err .Error ())
216
228
continue
217
229
}
230
+ u .recordingSessionLifecycleReplay (remainReplay .Id , model .ReplayUploadSuccess , "" )
218
231
successFiles = append (successFiles , replayPath )
219
232
// 上传完成 删除原录像文件
220
233
if err := os .Remove (replayPath ); err != nil {
@@ -232,6 +245,13 @@ func (u *UploaderService) UploadRemainReplays(replayDir string) (ret RemainRepla
232
245
return
233
246
}
234
247
248
+ func (u * UploaderService ) recordingSessionLifecycleReplay (sid string , event model.LifecycleEvent , msgErr string ) {
249
+ logObj := model.SessionLifecycleLog {Reason : msgErr }
250
+ if err := u .apiClient .RecordSessionLifecycleLog (sid , event , logObj ); err != nil {
251
+ logger .Errorf ("Record session %s activity %s failed: %s" , sid , event , err )
252
+ }
253
+ }
254
+
235
255
func (u * UploaderService ) uploadRemainReplay (replay * RemainReplay ) error {
236
256
replayAbsGzPath := replay .AbsFilePath
237
257
if ! isGzipFile (replayAbsGzPath ) {
0 commit comments