Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in NYC Sept 4th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

tS3Put component failing in 7.3.1 version

I am working on a requirement where I am reading a file from S3 bucket from one AWS account and uploading it to a different S3 account. In my Talend job, I am setting up S3 connection,  and using tS3get to download the file and finally using S3put to upload it. I was running this job in 7.0 and it worked fine but the ACL was not set for the uploaded file. So, I moved this code to 7.3.1 in which s3Put let you set ACL as well. When I ran this job in 7.3 it worked fine the first time and then I saw ts3connection is alerting to download and install couple of jars (quite usual). Anyways, I clicked and installed them. Later, i tried running the same code and now I am getting this error:

[FATAL] 02:52:18 edp.vacancies_address_standardization_process_0_1.Vacancies_Address_Standardization_process- tS3Put_2 Unable to complete multi-part upload. Individual part upload failed : REQUIRES_LENGTH
com.amazonaws.SdkClientException: Unable to complete multi-part upload. Individual part upload failed : REQUIRES_LENGTH
at com.amazonaws.services.s3.transfer.internal.CompleteMultipartUpload.collectPartETags(CompleteMultipartUpload.java:126) ~[aws-java-sdk-1.11.729.jar:?]
at com.amazonaws.services.s3.transfer.internal.CompleteMultipartUpload.call(CompleteMultipartUpload.java:87) ~[aws-java-sdk-1.11.729.jar:?]
at com.amazonaws.services.s3.transfer.internal.CompleteMultipartUpload.call(CompleteMultipartUpload.java:38) ~[aws-java-sdk-1.11.729.jar:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_232]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_232]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_232]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_232]
Caused by: java.lang.NoSuchFieldError: REQUIRES_LENGTH
at com.amazonaws.services.s3.AmazonS3Client.uploadPart(AmazonS3Client.java:3657) ~[aws-java-sdk-1.11.729.jar:?]
at com.amazonaws.services.s3.transfer.internal.UploadPartCallable.call(UploadPartCallable.java:64) ~[aws-java-sdk-1.11.729.jar:?]
at com.amazonaws.services.s3.transfer.internal.UploadPartCallable.call(UploadPartCallable.java:31) ~[aws-java-sdk-1.11.729.jar:?]
... 4 more

 

Please help!

Labels (3)
3 Replies
Anonymous
Not applicable
Author

Hi
What about if you uncheck 'Access control' option? Does the job works without ACL? Want to check if the error caused by this option or it is a jar issue.

Regards
Shong

Anonymous
Not applicable
Author

I tried running it without ACL and it still gives the same error. It seems to be jar issue. Is there a way I can revert to the previous version of jar.

Anonymous
Not applicable
Author

Hi
I checked and seen that it is aws-java-sdk-s3-1.11.125 installed in directory.
<studio installation directory>\configuration\.m2\repository\com\amazonaws\aws-java-sdk-s3\1.11.125

I tested tS3Put component in version 7.3.1 and it works.
So, try to delete the aws-java-sdk-1.11.729.jar file and reinstall it again, to do:
1. Go <studio installation directory>\configuration\.m2\repository and search the aws-java-sdk-1.11.729.jar.
2. Delete the folder 1.11.729 which contains this jar.
3. Restart Studio, and open the job, open the component view of tS3Put component, it will requires you to install the missing jars.

Regards
Shong