Files
g.hnyhua.cn/COSXML/Transfer/TransferManager.cs
2026-02-07 15:48:27 +08:00

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();
}
}
}