67 lines
2.1 KiB
C#
67 lines
2.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Threading;
|
|
/**
|
|
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
|
|
* 11/29/2018 5:09:07 PM
|
|
* bradyxiao
|
|
*/
|
|
namespace COSXML.Transfer
|
|
{
|
|
public sealed class TransferConfig
|
|
{
|
|
internal long divisionForCopy = 5242880; // 5M
|
|
|
|
internal long sliceSizeForCopy = 2097152; // 2M
|
|
|
|
internal long divisionForUpload = 5242880; // 5M
|
|
|
|
internal long sliceSizeForUpload = 1048576; // 1M
|
|
|
|
|
|
public long DdivisionForCopy { get { return divisionForCopy; } set { divisionForCopy = value; } }
|
|
|
|
public long DivisionForUpload { get { return divisionForUpload; } set { divisionForUpload = value; } }
|
|
|
|
public long SliceSizeForCopy { get { return sliceSizeForCopy; } set { sliceSizeForCopy = value; } }
|
|
|
|
public long SliceSizeForUpload { get { return sliceSizeForUpload; } set { sliceSizeForUpload = value; } }
|
|
}
|
|
|
|
public sealed class TransferManager
|
|
{
|
|
private TransferConfig transferConfig;
|
|
private CosXml cosXml;
|
|
|
|
public TransferManager(CosXml cosXmlServer, TransferConfig transferConfig)
|
|
{
|
|
if (cosXmlServer == null) throw new ArgumentNullException("CosXmlServer = null");
|
|
if (transferConfig == null) throw new ArgumentNullException("TransferConfig = null");
|
|
this.transferConfig = transferConfig;
|
|
//COSXMLTask.InitCosXmlServer(cosXmlServer);
|
|
this.cosXml = cosXmlServer;
|
|
}
|
|
|
|
public void Upload(COSXMLUploadTask uploader)
|
|
{
|
|
uploader.InitCosXmlServer(cosXml);
|
|
uploader.SetDivision(transferConfig.divisionForUpload, transferConfig.sliceSizeForUpload);
|
|
uploader.Upload();
|
|
}
|
|
|
|
public void Download(COSXMLDownloadTask downloader)
|
|
{
|
|
downloader.InitCosXmlServer(cosXml);
|
|
downloader.Download();
|
|
}
|
|
|
|
public void Copy(COSXMLCopyTask copy)
|
|
{
|
|
copy.InitCosXmlServer(cosXml);
|
|
copy.SetDivision(transferConfig.DdivisionForCopy, transferConfig.sliceSizeForCopy);
|
|
copy.Copy();
|
|
}
|
|
}
|
|
}
|