46 lines
1.3 KiB
Ruby
46 lines
1.3 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module WorkhorseLfsHelpers
|
||
|
extend self
|
||
|
|
||
|
def put_finalize(
|
||
|
lfs_tmp = nil, with_tempfile: false, verified: true, remote_object: nil,
|
||
|
args: {}, to_project: nil, size: nil, sha256: nil)
|
||
|
|
||
|
lfs_tmp ||= "#{sample_oid}012345678"
|
||
|
to_project ||= project
|
||
|
uploaded_file =
|
||
|
if with_tempfile
|
||
|
upload_path = LfsObjectUploader.workhorse_local_upload_path
|
||
|
file_path = upload_path + '/' + lfs_tmp
|
||
|
|
||
|
FileUtils.mkdir_p(upload_path)
|
||
|
FileUtils.touch(file_path)
|
||
|
File.truncate(file_path, sample_size)
|
||
|
|
||
|
UploadedFile.new(file_path, filename: File.basename(file_path), sha256: sample_oid)
|
||
|
elsif remote_object
|
||
|
fog_to_uploaded_file(remote_object, sha256: sample_oid)
|
||
|
else
|
||
|
UploadedFile.new(
|
||
|
nil,
|
||
|
size: size || sample_size,
|
||
|
sha256: sha256 || sample_oid,
|
||
|
remote_id: 'remote id'
|
||
|
)
|
||
|
end
|
||
|
|
||
|
finalize_headers = headers
|
||
|
finalize_headers.merge!(workhorse_internal_api_request_header) if verified
|
||
|
|
||
|
workhorse_finalize(
|
||
|
objects_url(to_project, sample_oid, sample_size),
|
||
|
method: :put,
|
||
|
file_key: :file,
|
||
|
params: args.merge(file: uploaded_file),
|
||
|
headers: finalize_headers,
|
||
|
send_rewritten_field: include_workhorse_jwt_header
|
||
|
)
|
||
|
end
|
||
|
end
|