Current section

Files

Jump to
ami lib uploaders resource_attachment_uploader.ex
Raw

lib/uploaders/resource_attachment_uploader.ex

defmodule Ami.ResourceAttachmentUploader do
use Arc.Definition
use Arc.Ecto.Definition
@acl :public_read_write
@versions [:original]
def storage_dir(_version, {_file, scope}) do
case Application.get_env(:ami_moderatorpanel, :env) do
:dev ->
# "priv/static/uploads/course/resource_attachments/#{scope.course_id}"
"uploads/resource/file"
:prod ->
# "uploads/course/resource_attachments/#{scope.course_id}"
"uploads/resource/file"
:staging ->
# "uploads/course/resource_attachments/#{scope.course_id}"
"uploads/resource/file"
:test ->
"priv/static/uploads/course/resource_attachments/#{scope.course_id}"
end
end
# def storage_dir(_version, {_file, scope}) do
# "uploads/resources/resource_attachments/"
# end
# To add a thumbnail version:
# @versions [:original, :thumb]
# Override the bucket on a per definition basis:
# def bucket do
# :custom_bucket_name
# end
# Whitelist file extensions:
# def validate({file, _}) do
# ~w(.jpg .jpeg .gif .png) |> Enum.member?(Path.extname(file.file_name))
# end
# Define a thumbnail transformation:
# def transform(:thumb, _) do
# {:convert, "-strip -thumbnail 250x250^ -gravity center -extent 250x250 -format png", :png}
# end
# Override the persisted filenames:
# def filename(version, _) do
# version
# end
# Override the storage directory:
# def storage_dir(version, {file, scope}) do
# "uploads/user/avatars/#{scope.id}"
# end
# Provide a default URL if there hasn't been a file uploaded
# def default_url(version, scope) do
# "/images/avatars/default_#{version}.png"
# end
# Specify custom headers for s3 objects
# Available options are [:cache_control, :content_disposition,
# :content_encoding, :content_length, :content_type,
# :expect, :expires, :storage_class, :website_redirect_location]
#
# def s3_object_headers(version, {file, scope}) do
# [content_type: MIME.from_path(file.file_name)]
# end
end