Newbies 357manch Posted May 16, 2017 Newbies Posted May 16, 2017 With the introduction of cURL options in FM16's Insert from URL script step I've been investigating the possibility of being able to save a copy of my FM solution directly to my Dropbox folder using the https://content.dropboxapi.com/2/files/upload element from Dropbox V2 API. I've successfully created the access token to pass through as part of this step and the Insert from URL script step successfully creates the stated folder and file in my Dropbox. However, the file size is always 0 bytes. I've tried 2 different methods METHOD 1 #Export a compacted copy of this file to Temporary Folder Set Variable [ $file_path ; Get ( TemporaryPath ) & "Solution.fmp12" ] Save a Copy as [ "$file_path" ; compacted ] #Set my cURL options to variable Set Variable [ $curl_header ; "curl -X POST https://content.dropboxapi.com/2/files/upload \\" & ¶ & "--header \"Authorization: Bearer " & PREFERENCES::Dropbox_AccessToken & "\" \\" & ¶ & "--header \"Dropbox-API-Arg: {\\\"path\\\": \\\"/DB2FM/Solution.fmp12\\\"}\" \\" & ¶ & "--header \"Content-Type: application/octet-stream\" \\" & ¶ & "--data-binary @" & $file_path ] #Dropbox URL Set Variable [ $dropbox_url ; "https://content.dropboxapi.com/2/files/upload" ] #Make Request - Set to variable adn then format to JSON field Insert from URL [ Verify SSL Certificates ; With dialog: Off ; $json ; $dropbox_url ; cURL options: $curl_header ] Set Field [ PREFERENCES:Dropbox_JSON ; JSONFormatElements ( $json ) ] METHOD 2 #Export a compacted copy of this file to Temporary Folder and then import to a container field Set Variable [ $file_path ; Get ( TemporaryPath ) & "Solution.fmp12" ] //note1 Save a Copy as [ "$file_path" ; compacted ] //note1 Insert File [ PREFERENCES::Container ; "$file_path" ] //note1 #Set variable following instructions on FileMaker website which states: # - Direct file access is replaced with a FileMaker variable prefixed by the @ character. # - To access a file, you can set the variable to a container field, which contains the file, then use that variable as the parameter of the cURL option. Set Variable [ $container_path ; PREFERENCES::Container ] #Set my cURL options to variable Set Variable [ $curl_header ; "curl -X POST https://content.dropboxapi.com/2/files/upload \\" & ¶ & "--header \"Authorization: Bearer " & PREFERENCES::Dropbox_AccessToken & "\" \\" & ¶ & "--header \"Dropbox-API-Arg: {\\\"path\\\": \\\"/DB2FM/Solution.fmp12\\\"}\" \\" & ¶ & "--header \"Content-Type: application/octet-stream\" \\" & ¶ & "--data-binary @" & $container_path ] #Dropbox URL Set Variable [ $dropbox_url ; "https://content.dropboxapi.com/2/files/upload" ] #Make Request - Set to variable adn then format to JSON field Insert from URL [ Verify SSL Certificates ; With dialog: Off ; $json ; $dropbox_url ; cURL options: $curl_header ] Set Field [ PREFERENCES:Dropbox_JSON ; JSONFormatElements ( $json ) ] JSON Response For Both Methods I get the following JSON Response for both methods { "client_modified" : "2017-05-16T11:22:47Z", "content_hash" : "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "id" : "id:heJWQ1SWwJsAAAAAAcMWNw", "name" : "Solution.fmp12", "path_display" : "/DB2FM/Solution.fmp12", "path_lower" : "/db2fm/solution.fmp12", "rev" : "3a0412f00f58892", "server_modified" : "2017-05-16T11:22:48Z", "size" : 0 } Any ideas as to why the file is created but with no content. I've also tried this with a number of different file types (.png, .txt, .pdf) by manually inserting a file into the container and greying out the 3 steps marked //note1 above but the result is always the same.
Recommended Posts
This topic is 3021 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now