0

While uploading multiple images to Amazon s3 using retrofit post request from background service other GET/POST API calls fails with error connection timeout. Although timeout is set to 10 Minutes.

My current implementation

ApiInterface.java

@Multipart
@POST
Call<JSONObject> upload(@Url String url, @Part("key") RequestBody key, @Part("AWSAccessKeyId") RequestBody AWSAccessKeyId, @Part("policy") RequestBody policy, @Part("signature") RequestBody signature, @Part("success_action_status") RequestBody successActionStatus, @Part MultipartBody.Part file);

UploadImagesService.java

 RequestBody key = RequestBody.create(MediaType.parse("text/plain"), s3key);
 RequestBody AWSAccessKeyId = RequestBody.create(MediaType.parse("text/plain"), s3Info.S3_ACCESS_KEY);
 RequestBody policy = RequestBody.create(MediaType.parse("text/plain"), s3Info.S3_POLICY);
 RequestBody signature = RequestBody.create(MediaType.parse("text/plain"), s3Info.S3_SIGNATURE);
 RequestBody success_action_status = RequestBody.create(MediaType.parse("text/plain"), "201");
 MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", temp_file.getName(), RequestBody.create(MediaType.parse("image/*"), temp_file));

 ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
 Call<JSONObject> call = apiService.upload("https://" + s3Info.S3_BUCKET_NAME + ".s3.amazonaws.com", key, AWSAccessKeyId, policy, signature, success_action_status, filePart);

How can I track uploaded data and also how can I make sure that in case of failure uploading resumes instead of restarting?

Daniel Nugent
  • 42,295
  • 14
  • 109
  • 134
Jay Patel
  • 1,051
  • 8
  • 24

0 Answers0