failed to connect api.cloudinary.com:443 ( is the api server is down ? or not ?
i'm trying to upload some images to cloudinary, with java,
and this is my configuration.
with cloudinary://api_key:api_secret@cloudname as my connectionString value;
private Cloudinary cloudinary;
public CloudinaryFileHandling(String connectionString) {
System.out.println("TEST 1231231232");
cloudinary = new Cloudinary(connectionString);
}
public Map uploadIMage(MultipartFile multipartFile) throws IOException {
File convFile = new File(multipartFile.getOriginalFilename());
convFile.createNewFile();
FileOutputStream fileOutputStream = new FileOutputStream(convFile);
fileOutputStream.write(multipartFile.getBytes());
fileOutputStream.close();
Map uploadResult = cloudinary.uploader().upload(convFile,ObjectUtils.asMap());
return uploadResult;
}
@Transactional
public User updateUserPhoto(User user, MultipartFile multipartFile) {
CloudinaryFileHandling cloudinaryFileHandling = new CloudinaryFileHandling(cloudinaryConnectionString);
Boolean successUpload = false;
CloudinaryImageDTO cloudinaryImageDTO = null;
try {
cloudinaryFileHandling.uploadIMage(multipartFile);
Map resultMap = cloudinaryFileHandling.uploadIMage(multipartFile);
cloudinaryImageDTO = new CloudinaryImageDTOBuilder()
.setPublicId((String) resultMap.get("public_Id"))
.setVersion((String) resultMap.get("version"))
.setSignature((String) resultMap.get("signature"))
.setWidth(Float.parseFloat( (String) resultMap.get("width")))
.setHeight(Float.parseFloat( (String) resultMap.get("height")))
.setFormat((String) resultMap.get("format"))
.setResourceType((String) resultMap.get("resource_type"))
.setBytes(Long.parseLong((String) resultMap.get("bytes")))
.setType((String) resultMap.get("type"))
.setUrl((String) resultMap.get("url"))
.setSecureUrl((String) resultMap.get("secure_url"))
.setEtag((String)resultMap.get("etag"))
.createCloudinaryImageDTO();
successUpload = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if(successUpload){
user.setCloudinaryImage(cloudinaryImageDTO);
userRepository.save(user);
}
}
return user;
}
and yet i got this error.
org.apache.http.conn.HttpHostConnectException: Connect to api.cloudinary.com:443 [api.cloudinary.com/34.231.82.104, api.cloudinary.com/52.54.173.143, api.cloudinary.com/52.70.5.86, api.cloudinary.com/34.232.100.214] failed: Connection refused: connect.
i check api.cloudinary.com server with http://www.isitdownrightnow.com/api.cloudinary.com.html, and the result is DOWN.
is it because api.cloudinary.com really is down?
-
already Found the answer. that errors happen because my app running behind proxy.
now im trying to set proxy parameter when calling upload api, but it doesnt change anything.
is this the right way to set proxy parameter when calling upload api?public Map uploadIMage(MultipartFile multipartFile) throws IOException {
File convFile = new File(multipartFile.getOriginalFilename());
convFile.createNewFile();
FileOutputStream fileOutputStream = new FileOutputStream(convFile);
fileOutputStream.write(multipartFile.getBytes());
fileOutputStream.close();
Map uploadResult = cloudinary.uploader().upload(convFile,ObjectUtils.asMap("proxy","http://10.17.33.240:3128"));
return uploadResult;
} -
Hi Ismail,
Proxy tells Cloudinary to upload resources from remote URLs through the given proxy. Format:
http://hostname:port
.I see you are passing a file, for the proxy you need to pass the URL. In your case, I don't think you need a proxy, you can simply upload your file.
Please let me know if you have any questions.
Thanks,
Aditi
Post is closed for comments.
Comments
2 comments