chore: skip export to exist file (#2637)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
This commit is contained in:
parent
0e04a56177
commit
0eaf429c4e
|
|
@ -930,6 +930,16 @@ func (s *server) ImportTask(ctx context.Context, req *dfdaemonv1.ImportTaskReque
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *server) ExportTask(ctx context.Context, req *dfdaemonv1.ExportTaskRequest) (*emptypb.Empty, error) {
|
func (s *server) ExportTask(ctx context.Context, req *dfdaemonv1.ExportTaskRequest) (*emptypb.Empty, error) {
|
||||||
|
_, err := os.Stat(req.Output)
|
||||||
|
if err == nil {
|
||||||
|
// we did not export file to exist file
|
||||||
|
// TODO add white list folders to write files
|
||||||
|
return nil, dferrors.New(commonv1.Code_BadRequest, "output file is already exist")
|
||||||
|
}
|
||||||
|
// check other stat errors, only os.ErrNotExist is okay
|
||||||
|
if !os.IsNotExist(err) {
|
||||||
|
return nil, dferrors.New(commonv1.Code_ClientError, err.Error())
|
||||||
|
}
|
||||||
s.Keep()
|
s.Keep()
|
||||||
taskID := idgen.TaskIDV1(req.Url, req.UrlMeta)
|
taskID := idgen.TaskIDV1(req.Url, req.UrlMeta)
|
||||||
log := logger.With("function", "ExportTask", "URL", req.Url, "Tag", req.UrlMeta.Tag, "taskID", taskID, "destination", req.Output)
|
log := logger.With("function", "ExportTask", "URL", req.Url, "Tag", req.UrlMeta.Tag, "taskID", taskID, "destination", req.Output)
|
||||||
|
|
@ -947,7 +957,7 @@ func (s *server) ExportTask(ctx context.Context, req *dfdaemonv1.ExportTaskReque
|
||||||
return new(emptypb.Empty), s.exportFromPeers(ctx, log, req)
|
return new(emptypb.Empty), s.exportFromPeers(ctx, log, req)
|
||||||
}
|
}
|
||||||
|
|
||||||
err := s.exportFromLocal(ctx, req, task.PeerID)
|
err = s.exportFromLocal(ctx, req, task.PeerID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("export from local failed: %s", err)
|
log.Errorf("export from local failed: %s", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue