如何克服基于云同步引擎的虚拟驱动器中文件下载的 4Gb 限制?
How to overcome 4Gb limitation on file download in virtual drive based on Cloud Sync Engine?
我正在使用 Cloud Files API 和 this project 实现虚拟驱动器。但是,下载大于 4Gb 的文件会卡住。进度停止并且不再调用 TransferDataAsync(),即使文件中还有更多字节。
您需要在段长度中添加可选长度:
public async Task TransferDataAsync(long offset, long length,
ITransferDataOperationContext operationContext, ITransferDataResultContext resultContext)
{
if (operationContext.FileSize > 0x100000000)
{
length += operationContext.OptionalLength;
}
…
}
根据我的经验,这会稍微减慢小文件的下载速度。因此,仅对超过 4Gb 的文件执行此操作是有意义的。
我正在使用 Cloud Files API 和 this project 实现虚拟驱动器。但是,下载大于 4Gb 的文件会卡住。进度停止并且不再调用 TransferDataAsync(),即使文件中还有更多字节。
您需要在段长度中添加可选长度:
public async Task TransferDataAsync(long offset, long length,
ITransferDataOperationContext operationContext, ITransferDataResultContext resultContext)
{
if (operationContext.FileSize > 0x100000000)
{
length += operationContext.OptionalLength;
}
…
}
根据我的经验,这会稍微减慢小文件的下载速度。因此,仅对超过 4Gb 的文件执行此操作是有意义的。