diff --git a/src/Config.py b/src/Config.py index 13047995..9fc54c5f 100644 --- a/src/Config.py +++ b/src/Config.py @@ -187,7 +187,8 @@ class Config(object): metavar='address') self.parser.add_argument('--updatesite', help='Source code update site', default='1UPDatEDxnvHDo7TXvq6AEBARfNkyfxsp', metavar='address') - self.parser.add_argument('--size_limit', help='Default site size limit in MB', default=10, type=int, metavar='size') + self.parser.add_argument('--size_limit', help='Default site size limit in MB', default=10, type=int, metavar='limit') + self.parser.add_argument('--file_size_limit', help='Maximum per file size limit in MB', default=10, type=int, metavar='limit') self.parser.add_argument('--connected_limit', help='Max connected peer per site', default=8, type=int, metavar='connected_limit') self.parser.add_argument('--workers', help='Download workers per site', default=5, type=int, metavar='workers') diff --git a/src/Site/Site.py b/src/Site/Site.py index 831eb122..3e99b7fe 100644 --- a/src/Site/Site.py +++ b/src/Site/Site.py @@ -683,6 +683,12 @@ class Site(object): )) return False self.downloadContent(file_info["content_inner_path"]) + if file_info.get("size", 0) > config.file_size_limit * 1024 * 1024: + self.log.debug( + "File size %s too large: %sMB > %sMB, skipping..." % + (inner_path, file_info.get("size", 0) / 1024 / 1024, config.file_size_limit) + ) + return False task = self.worker_manager.addTask(inner_path, peer, priority=priority) if blocking: