+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Mix.Tasks.Pleroma.Uploads do
use Mix.Task
- alias Pleroma.{Upload, Uploaders.Local}
alias Mix.Tasks.Pleroma.Common
+ alias Pleroma.Upload
+ alias Pleroma.Uploaders.Local
require Logger
@log_every 50
- @shortdoc "Migrate uploads from local to remote storage"
- @doc """
+
+ @shortdoc "Migrates uploads from local to remote storage"
+ @moduledoc """
Manages uploads
+
## Migrate uploads from local to remote storage
+ mix pleroma.uploads migrate_local TARGET_UPLOADER [OPTIONS...]
+ Options:
+ - `--delete` - delete local uploads after migrating them to the target uploader
+ A list of available uploaders can be seen in config.exs
"""
def run(["migrate_local", target_uploader | args]) do
delete? = Enum.member?(args, "--delete")
timeout: 150_000
)
|> Stream.chunk_every(@log_every)
+ # credo:disable-for-next-line Credo.Check.Warning.UnusedEnumOperation
|> Enum.reduce(0, fn done, count ->
count = count + length(done)
Mix.shell().info("Uploaded #{count}/#{total_count} files")