Last updated 1 year ago
Was this helpful?
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.
public
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.
excon
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
/v1/clients/upload_properties
File name for the uploaded file
SHA256 digest of the file content
File Uploaded
curl -L \ --request POST \ --url 'https://api.textmaster.com/v1/clients/upload_properties' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data '{"file_name":"text","hashed_payload":"text"}'
{ "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" } }