func (c *Client) Run() error {
	if c.config.FlagConf.Config.CCRToTCR {
		return c.CCRToTCRTransfer()
	}
	return c.NormalTransfer(c.config.ImageList, nil, nil, nil)
}
Run is main function of a transfer client
package imagetransfer
import (
	"container/list"
	"fmt"
	"strings"
	"sync"
	"time"
	"tkestack.io/image-transfer/configs"
	"tkestack.io/image-transfer/pkg/apis/ccrapis"
	"tkestack.io/image-transfer/pkg/apis/tcrapis"
	"tkestack.io/image-transfer/pkg/image-transfer/options"
	"tkestack.io/image-transfer/pkg/log"
	"tkestack.io/image-transfer/pkg/transfer"
	"tkestack.io/image-transfer/pkg/utils"
)
type Client struct {
	jobList *list.List
	urlPairList *list.List
	normalURLPairList *list.List
	failedJobList              *list.List
	failedJobGenerateList      *list.List
	failedGenNormalURLPairList *list.List
	config *configs.Configs
	urlPairFinished bool
	jobListMutex                    sync.Mutex
	urlPairListMutex                sync.Mutex
	normalURLPairListMutex          sync.Mutex
	failedJobListMutex              sync.Mutex
	failedJobGenerateListMutex      sync.Mutex
	failedGenNormalURLPairListMutex sync.Mutex
	urlPairFinishedMutex            sync.Mutex
}
type URLPair struct {
	source string
	target string
}