mirror of
https://github.com/zulip/zulip.git
synced 2025-11-13 02:17:19 +00:00
Fixes #14960. The default of 6 thread may not be appropriate in certain configurations. Taking half of the numer of CPUs available to the process will be more flexible.
29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
from typing import Any
|
|
|
|
from django.conf import settings
|
|
from django.core.management.base import BaseCommand, CommandError, CommandParser
|
|
|
|
from zerver.lib.transfer import transfer_uploads_to_s3
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = """Transfer uploads to S3 """
|
|
|
|
def add_arguments(self, parser: CommandParser) -> None:
|
|
parser.add_argument('--processes',
|
|
dest='processes',
|
|
action="store",
|
|
default=settings.DEFAULT_DATA_EXPORT_IMPORT_PARALLELISM,
|
|
help='Processes to use for exporting uploads in parallel')
|
|
|
|
def handle(self, *args: Any, **options: Any) -> None:
|
|
num_processes = int(options['processes'])
|
|
if num_processes < 1:
|
|
raise CommandError('You must have at least one process.')
|
|
|
|
if not settings.LOCAL_UPLOADS_DIR:
|
|
raise CommandError('Please set the value of LOCAL_UPLOADS_DIR.')
|
|
|
|
transfer_uploads_to_s3(num_processes)
|
|
print("Transfer to S3 completed successfully.")
|