cancel
Showing results forĀ 
ShowĀ Ā onlyĀ  | Search instead forĀ 
Did you mean:Ā 
Announcements
Whatā€™s new: end-to-end encryption, Replay and Dash updates. Find out more about these updates, new features and more here.

Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

cancel
Showing results forĀ 
ShowĀ Ā onlyĀ  | Search instead forĀ 
Did you mean:Ā 

Functionality changes

Functionality changes

grp3
Explorer | Level 4

Hi!

I play some audio files from dropbox all was great but yesterday something went wrong. I use 

get_temporary_link

to get link of the file.

When I play .ogg file via temporary link in my player (on android) and seek to some position player starts to play from beginning.

I suppose that there was some changes on Dropbox, maybe some headers changed.

When I download this file and play locally everything is fine. I also tried to load such ogg file to github and it works fine.
Please tell me what could happen since yesterday and how to fix it.

7 Replies 7

Greg-DB
Dropbox Staff

Are you able to retrieve any specific error message or output?

 

We did recently update these links to use "Transfer-Encoding: chunked" (and accordingly not return the "Content-Length" header) on HTTP/1.1, but HTTP clients should automatically handle this. It's possible yours doesn't, however.

 

Also, that change was rolled out earlier than you're describing. When was the last time specifically that you saw this working?

grp3
Explorer | Level 4

Thank you for reply!

Users started to report issue the 3rd February in the evening.

 

I checked Content-Length in Postman and it was there. These headers I got from Postman:

 

 

accept-encoding: identity,gzip
accept-ranges: bytes
cache-control: max-age=60
content-disposition: attachment; filename="2.ogg"; filename*=UTF-8''2.ogg
content-length: 3018658
content-security-policy: sandbox
content-type: audio/ogg
date: Fri, 04 Feb 2022 20:04:06 GMT
etag: 1642877210753874d
pragma: public
referrer-policy: no-referrer
server: envoy
strict-transport-security: max-age=31536000; includeSubDomains; preload
vary: Origin
x-content-security-policy: sandbox
x-content-type-options: nosniff
x-dropbox-request-id: b6165d08b11c4e86ab427e2ef3f9151a
x-dropbox-response-origin: far_remote
x-robots-tag: noindex, nofollow, noimageindex, noindex, nofollow, noimageindex
x-server-response-time: 16
x-webkit-csp: sandbox

 

 

I noticed that .ogg audio did not preload.

Except .ogg files I also have .m4a as duplicates. It is strange, but I switched to .m4a and it works. I compared headers of .ogg and .m4a and they were identical.

Now my app seems to work fine, but I am not sure the same won't happen with .m4a.

Do you know why .m4a works, but .ogg does not?

Greg-DB
Dropbox Staff

I'm not aware of any reason off hand that .m4a should works but .ogg wouldn't. Note that using Postman may not be representative of your actual video player client on Android though, as they may use different HTTP versions or features. Are you able to get any logging output for the actual client on Android?

grp3
Explorer | Level 4

I tried to get headers from android, but I didn't find working solution to do it. Thank you for you answers!

Greg-DB
Dropbox Staff

Update: in order to temporarily accommodate clients that donā€™t properly support automatically handling ā€œTransfer-Encoding: chunkedā€, weā€™re temporarily rolling back this change, so that these links will no longer use ā€œTransfer-Encoding: chunkedā€ and will instead return ā€œContent-Lengthā€ on HTTP/1.1. We will begin rolling that out starting around 2/17. That will be in place until around 3/1. At that point, we will begin using ā€œTransfer-Encoding: chunkedā€ and no longer returning ā€œContent-Lengthā€ on HTTP/1.1 again.


Going forward, please ensure that your clients are able to automatically handle both chunked encoding and non-chunked encoding automatically.

Aristide
Helpful | Level 7

@grp3 

I created an issue tracker:

https://issuetracker.google.com/issues/219687412

You are welcome šŸ™‚

Greg-DB
Dropbox Staff

Update: the team has been able to complete some further updates to our infrastructure to be able to support the previous non-chunked behavior going forward indefinitely. That means that we plan to continue returning Content-Length (and not 'Transfer-Encoding: chunked') in the future and will not be reverting this as previously planned. (Regardless, for HTTP compatibility in general, we still recommend you make sure your HTTP clients support both types.) Hope this helps!

Need more support?
Who's talking

Top contributors to this post

  • User avatar
    Greg-DB Dropbox Staff
  • User avatar
    Aristide Helpful | Level 7
  • User avatar
    grp3 Explorer | Level 4
What do Dropbox user levels mean?