class GitLfsS3::UploadService::UploadRequired

Public Class Methods

should_handle?(req, object) click to toggle source
# File lib/git-lfs-s3/services/upload/upload_required.rb, line 8
def self.should_handle?(req, object)
  !object.exists? || object.size != req['size']
end

Public Instance Methods

response() click to toggle source
# File lib/git-lfs-s3/services/upload/upload_required.rb, line 12
def response
  {
    '_links' => {
      'upload' => {
        'href'   => upload_destination,
        'header' => upload_headers
      },
      'verify' => {
        'href' => File.join(server_url, 'verify')
      }
    }
  }
end
status() click to toggle source
# File lib/git-lfs-s3/services/upload/upload_required.rb, line 26
def status
  202
end

Private Instance Methods

upload_destination() click to toggle source
# File lib/git-lfs-s3/services/upload/upload_required.rb, line 32
def upload_destination
  if ceph_s3
    GitLfsS3::CephPresignerService.signed_url(object)
  elsif GitLfsS3::Application.settings.public_server
    object.presigned_url(:put, acl: 'public-read', expires_in: 86_400)
  else
    object.presigned_url(:put, expires_in: 86_400)
  end
end
upload_headers() click to toggle source
# File lib/git-lfs-s3/services/upload/upload_required.rb, line 42
def upload_headers
  { 'content-type' => '' }
end