Can I get the size of a file via a CURL command given only a link without authenticating?E.g., https://www.dropbox.com/s/uf12345szlap449/Files.mp4?dl=0
Shared links like this (generally) don't require you to authenticate to access the content, so you can get the content and check the length. For example, using this link:
https://www.dropbox.com/s/vv7us05r9z46lwt/hello_world.txt?dl=0
We can ask for the raw file content by modifying the parameters as shown here:
https://www.dropbox.com/help/201
This gives us this version of the link:
https://www.dropbox.com/s/vv7us05r9z46lwt/hello_world.txt?raw=1
We can then access the content programmatically, e.g., using curl:
curl -L https://www.dropbox.com/s/vv7us05r9z46lwt/hello_world.txt?raw=1
(The -L is necessary to follow redirects.)
The response contains the length in the "Content-Length" header, e.g.:
Content-Length: 14
Alternatively, you can check the length of the returned file yourself.
Or, here's a more advanced method, using the Python requests library, to get the Content-Length without downloading the file, by using a HEAD request:
import requests url = "https://www.dropbox.com/s/vv7us05r9z46lwt/hello_world.txt?raw=1" redirected_url = requests.head(url).headers['location'] content_length = requests.head(redirected_url).headers['Content-Length'] print content_length
(Just don't re-use redirected_url. Always get a new one from the original link.)
Thanks. That works, however, I had to use "curl -LI", otherwise it tries to download the entire file. And it worked fine with the original "dl=0" link as well.