signalapp / libsignal-service-java

A Java/Android library for communicating with the Signal messaging service.
GNU General Public License v3.0
587 stars 271 forks source link

Unable to upload attachments #75

Open sbhushan87 opened 5 years ago

sbhushan87 commented 5 years ago

Hi Team,

I am unable to upload attachments using an android client. Its throwing http 405 error code while calling uploadtoCdnfunction.

 org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException: Response: Response{protocol=h2, code=405, message=, url=https://cdn.xxxx.com/attachments/}
        at org.whispersystems.signalservice.internal.push.PushServiceSocket.uploadToCdn(PushServiceSocket.java:759)
        at org.whispersystems.signalservice.internal.push.PushServiceSocket.uploadAttachment(PushServiceSocket.java:627)
        at org.whispersystems.signalservice.api.SignalServiceMessageSender.uploadAttachment(SignalServiceMessageSender.java:354)
        at org.thoughtcrime.securesms.jobs.AttachmentUploadJob.onRun(AttachmentUploadJob.java:92)
        at org.thoughtcrime.securesms.jobs.BaseJob.run(BaseJob.java:21)
        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:82)
        at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:46)

My CDN setup looks good but i suspect that CND doesn't expose any "attachment" endpoint instead it allows POST calls to its ROOT url only. Do I need to make any configuration changes to my CDN or Signal server to make it work?

Thank you.

maincui commented 5 years ago

if you cdn is CloudFront, AWS told me to operate on CF's root folder, that means you have to change upload path of attachments to "", and at the server side change objectName of attachments to prefix "attachments/" like profiles does.