mega同时下载文件数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mega同时下载文件数相关的知识,希望对你有一定的参考价值。
Mega是一个全球最大的在线文件存储和分享服务,它可以让用户同时下载多个文件,最多可以同时下载20个文件。用户可以通过Mega的客户端软件或者网页版本来访问和下载文件,Mega还提供了一系列的安全功能,可以保护用户的文件不受任何恶意攻击。 参考技术A Mega允许您同时下载文件的最大数量取决于您使用的浏览器。在Chrome和Firefox上,最多可以同时下载20个文件。而在Safari上,可以同时下载14个文件。 参考技术B mega同时下载文件数选项------连接-------向导
从这里设同时下载几个文件和网络速度
选项------连接
这页里设置上下传速度,下载和上传的比例最大为4:1,以防止只下载不上传。 参考技术C 原则上,Alfa与Mega均可同时多文件下载。但一般来说,Alfa所支持的最大下载速度比Mega的最大下载速度要高,所以Mega支持的同时下载文件数更多。若要获得最优的文件下载效率,建议使用Alfa来完成任务。
swift: 可以同时下载的文件数
【中文标题】swift: 可以同时下载的文件数【英文标题】:swift: number of files that can be downloading at the same time 【发布时间】:2018-08-08 08:06:54 【问题描述】:我有部分和单元格的集合视图。
我使用此代码下载文件:
let sessionConfig = URLSessionConfiguration.background(withIdentifier: "com.example.DownloadTaskExample.background")
backgroundSession = URLSession(configuration: sessionConfig, delegate: self, delegateQueue: OperationQueue())
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
let url = URL(string: "link")!
let downloadTaskLocal = self.backgroundSession.downloadTask(with: url)
self.allDownloadTasks.append(downloadTaskLocal) // Add a new task to the array
downloadTaskLocal.resume()
func urlSession(_ session: URLSession,
downloadTask: URLSessionDownloadTask,
didWriteData bytesWritten: Int64,
totalBytesWritten: Int64,
totalBytesExpectedToWrite: Int64)
DispatchQueue.main.async(execute: () -> Void in
if let visibleIndexPath = self.collectionView?.indexPathsForVisibleItems
for visibleIndexPath in visibleIndexPath
if (downloadTask.currentRequest?.url?.lastPathComponent == "\(visibleIndexPath.section)\(visibleIndexPath.row).zip")
self.progressOfDownload.append("\(Int(CGFloat(totalBytesWritten) / CGFloat(totalBytesExpectedToWrite) * 100.0))%")
)
但是,如果我单击单元格,我的文件就会开始下载。但是我想点击一个单元格(开始显示进度),如果之后我点击不同的单元格,我不想在这个单元格中显示进度,直到第一个文件没有下载。换句话说。我想一次下载一个文件,如果用户点击另一个单元格,这个下载应该在队列中。怎么做?
【问题讨论】:
您可以使用 URLSessionConfiguration 设置一次下载的项目数。 sessionConfigue.httpMaximumConnectionsPerHost = 1 所以它会一次启动一个任务。 @SaurabhPrajapati 不起作用。 【参考方案1】:请检查以下代码,它将管理您的所有下载任务
var isDownloading = false
didSet
if isDownloading == false
//remove downloadedTask
if allDownloadTasks.count > 0
allDownloadTasks.removeFirst()
var allDownloadTasks:[URLSessionDownloadTask] = []
didSet
if isDownloading == false
//start next Download
startNextDownload()
func startNextDownload()
//start download task
if allDownloadTasks.count > 0
let downloadTask = allDownloadTasks[0]
downloadTask.resume()
在 CollectionViewDidSelect 方法中
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
let url = URL(string: "link")!
let downloadTaskLocal = self.backgroundSession.downloadTask(with: url)
self.allDownloadTasks.append(downloadTaskLocal) // Add a new task to the array
【讨论】:
我应该在行后添加你的代码:allDownloadTasks.append(downloadTaskLocal)
?
你只需要添加 isDownloading , allDownloadTask 变量 & startNextDownload 函数。以上是关于mega同时下载文件数的主要内容,如果未能解决你的问题,请参考以下文章
电脑mega下载文件,原因文件档太大,所以下载到一半电脑可以暂停关机了,让明天再继续下载?? 我是