Jump to content
Claris Engage 2025 - March 25-26 Austin Texas ×

This topic is 2748 days old. Please don't post here. Open a new topic instead.

Recommended Posts

  • Newbies
Posted

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.

 

This topic is 2748 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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.