+# 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
- import Mix.Ecto
- alias Pleroma.{Upload, Uploaders.Local, Uploaders.S3}
+ alias Pleroma.{Upload, Uploaders.Local}
alias Mix.Tasks.Pleroma.Common
require Logger
@log_every 50
- @shortdoc "Migrate uploads from local to remote storage"
- @longdoc """
+
+ @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 avalible uploaders can be seen in config.exs
+ """
def run(["migrate_local", target_uploader | args]) do
delete? = Enum.member?(args, "--delete")
Common.start_pleroma()
File.exists?(root_path) ->
file = Path.basename(id)
- [hash, ext] = String.split(id, ".")
+ hash = Path.rootname(id)
{%Pleroma.Upload{id: hash, name: file, path: file, tempfile: root_path}, root_path}
true ->