Skip to main content
Solved

Upload files to resource folders using Rest API. I am getting 415 HTTP error. Below is my python code.

  • September 14, 2021
  • 2 replies
  • 154 views

Forum|alt.badge.img

import os

import requests

import json

import cv2

 

directory = r'C:\\boatlaunch'

for filename in os.listdir(directory):

 if filename.endswith(".jpg") or filename.endswith(".jpge") or filename.endswith(".JPG"):

  print(os.path.join(directory, filename))

  filenamepath=os.path.join(directory, filename)

  url = "https://<servername>/fmerest/v3/resources/connections/FME_SHAREDRESOURCE_DATA/filesys/EnvironmentAffair?createDirectories=false&overwrite=false"

  head={

   'Authorization': 'fmetoken token=<mytoken>',

   'Content-Disposition': 'attachment; filename="test.jpg"',

   'Content-Type': 'application/octect-stream',

   'Accept': 'application/json'

   }

  print(head)

  filedata = open(filenamepath,'rb')

  print(filedata)

   

  res = requests.post(url,data=filedata,headers=head)

  print(res.status_code)

  print(res.text)

  print(res.request.headers)

Best answer by suresh_nalla

Below code works. I was trying to upload files from the local windows folder to FME server resource folder using FME REST API. I was having issue with header of the web api call. I got the solution.

 

import os

import requests

import json

 

apitoken = '<apitoken>'

fmeservername = '<yoursever>'

resourcefoldername = '<yourfoldername>'

 

directory = '<directorypathwherefilesstored>'

for filename in os.listdir(directory):

 if filename.endswith(".jpg") or filename.endswith(".jpge") or filename.endswith(".JPG"):

  print(os.path.join(directory, filename))

  filenamepath=os.path.join(directory, filename)

  url = "https://{0}/fmerest/v3/resources/connections/FME_SHAREDRESOURCE_DATA/filesys/{1}?createDirectories=false&overwrite=true".format(fmeservername,resourcefoldername)

  head={

   'Authorization': 'fmetoken token={0}'.format(apitoken),

   }

  myfile = {'file': open(filenamepath ,'rb')}

  res = requests.post(url, files = myfile, headers=head)   

  print(res.status_code)

  #print(res.text)

  #print(res.request.headers)

 

View original
Did this help you find an answer to your question?

2 replies

redgeographics
Celebrity
Forum|alt.badge.img+47

HTTP error 415 is about unsupported media types. What exactly are you trying to do?


Forum|alt.badge.img
  • Author
  • Best Answer
  • September 15, 2021

Below code works. I was trying to upload files from the local windows folder to FME server resource folder using FME REST API. I was having issue with header of the web api call. I got the solution.

 

import os

import requests

import json

 

apitoken = '<apitoken>'

fmeservername = '<yoursever>'

resourcefoldername = '<yourfoldername>'

 

directory = '<directorypathwherefilesstored>'

for filename in os.listdir(directory):

 if filename.endswith(".jpg") or filename.endswith(".jpge") or filename.endswith(".JPG"):

  print(os.path.join(directory, filename))

  filenamepath=os.path.join(directory, filename)

  url = "https://{0}/fmerest/v3/resources/connections/FME_SHAREDRESOURCE_DATA/filesys/{1}?createDirectories=false&overwrite=true".format(fmeservername,resourcefoldername)

  head={

   'Authorization': 'fmetoken token={0}'.format(apitoken),

   }

  myfile = {'file': open(filenamepath ,'rb')}

  res = requests.post(url, files = myfile, headers=head)   

  print(res.status_code)

  #print(res.text)

  #print(res.request.headers)

 


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings