Uploads
Get upload properties for a file
Get upload properties for a file a client wish to upload on TextMaster. Theses properties can then be used to make the HTTP request on the storage provider with the file sent as HTTP form data.
OAuth: This endpoint requires the default public
scope.
Code samples
curl "https://api.textmaster.com/v1/clients/upload_properties" \
-X POST \
--data-urlencode "file_name=my-file.pdf" \
--data-urlencode "hashed_payload=f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2" \
-H "Authorization: Bearer 427ba17dc03db4792cd8d3c731ed53addd261b1baa7eef1ceda2cf2ca20f2b79"
# Response:
#
# {
# "url": "https://storage-proxy.textmaster.com/api-files/uploads/10922fb8-9265-4ef2-92e8-c4177c3b03da/ef9f1ca8/my-file.pdf",
# "headers": {
# "x-upload-path": "uploads/10922fb8-9265-4ef2-92e8-c4177c3b03da/ef9e1ca8/my-file.pdf",
# "x-upload-sha256": "f2ca1bb6c7e907d06dafe4687e579fce76b37e4e39b7605022da52e6ccc26fd2",
# "x-upload-date": "20500102T123456Z",
# "Authorization": "78ca271e7f6464961ef3db6903da3d2c51cd4156975322ba678840e12a334de3"
# }
# }
curl "https://storage-proxy.textmaster.com/api-files/uploads/10922fb8-9265-4ef2-92e8-c4177c3b03da/ef9f1ca8/my-file.pdf" \
-X PUT \
-H "x-upload-path: uploads/10922fb8-9265-4ef2-92e8-c4177c3b03da/ef9e1ca8/my-file.pdf" \
-H "x-upload-sha256: f2ca1bb6c7e907d06dafe4687e579fce76b37e4e39b7605022da52e6ccc26fd2" \
-H "x-upload-date: 20500102T123456Z" \
-H "Authorization: 78ca271e7f6464961ef3db6903da3d2c51cd4156975322ba678840e12a334de3" \
-H "Content-Type: application/pdf" \
-d "@path/to-the-actual-file/my-file.pdf"
This sample Ruby code requires the excon
gem to be installed.
require 'digest/sha1'
require 'excon'
require 'json'
require 'time'
file_name = 'my-file.pdf'
file_path = 'path/to-the-actual-file/my-file.pdf'
file_content = File.binread(file_path)
hashed_payload = Digest::SHA256.hexdigest(file_content)
apikey = 'YOUR TEXTMASTER API KEY'
apisecret = 'YOUR TEXTMASTER API SECRET'
current_time = Time.now.utc.httpdate
signature = Digest::SHA1.hexdigest(apisecret + current_time)
response = Excon.post(
'https://api.textmaster.com/v1/clients/upload_properties.json',
body: URI.encode_www_form(file_name: file_name, hashed_payload: hashed_payload),
headers: {
apikey: apikey,
date: current_time,
signature: signature,
}
)
properties = JSON.parse(response.body)
# {
# "url" => "https://storage-proxy.textmaster.com/api-files/uploads/10922fb8-9265-4ef2-92e8-c4177c3b03da/ef9f1ca8/my-file.pdf",
# "headers" => {
# "x-upload-path" => "uploads/10922fb8-9265-4ef2-92e8-c4177c3b03da/ef9e1ca8/my-file.pdf",
# "x-upload-sha256" => "f2ca1bb6c7e907d06dafe4687e579fce76b37e4e39b7605022da52e6ccc26fd2",
# "x-upload-date" => "20500102T123456Z",
# "Authorization" => "78ca271e7f6464961ef3db6903da3d2c51cd4156975322ba678840e12a334de3"
# }
# }
response = Excon.put(
properties['url'],
body: file_content,
headers: properties['headers'].merge('Content-Type' => 'application/pdf')
)
response.status
#=> 200
Last updated