Current section
Files
Jump to
Current section
Files
lib/b2.ex
defmodule B2 do
use Application
def start(_type, _args) do
import Supervisor.Spec, warn: false
children = [
worker(B2.AccountStore, []),
]
opts = [strategy: :one_for_one, name: B2.Supervisor]
Supervisor.start_link(children, opts)
end
@doc """
B2 Cloud Storage Endpoint
"""
def endpoint, do: "https://api.backblaze.com/b2api"
@doc """
B2 Cloud Storage API Endpoint
"""
def api_endpoint, do: B2.AccountStore.api_url
@doc """
Get basic authorization header
"""
def basic_auth_header do
encoded = Base.encode64("#{account_id}:#{application_key}")
%{"Authorization" => "Basic " <> encoded,
"Content-Type" => "application/x-www-form-urlencoded"}
end
@doc """
Get token based authorization header
"""
def auth_header do
token = B2.AccountStore.application_token
%{"Authorization" => token,
"Content-Type" => "application/x-www-form-urlencoded"}
end
@doc """
Get account id.
"""
def account_id do
Application.get_env(:b2, :account_id) ||
System.get_env("B2_ACCOUNT_ID")
end
defp application_key do
Application.get_env(:b2, :application_key) ||
System.get_env("B2_APPLICATION_KEY")
end
end