File names and paths in REST API endpoints
Bitbucket Server REST API endpoints provide the ability to check details on files and these files may contain some special characters.
For example the following endpoint can be used to retrieved the raw content of a file
/rest/api/1.0/projects/<project>/repos/<repository>/raw/<path/to/file>/filename.extension
What are special characters in the path or the filename?
It could be anything, but the ones we have seen the most are the following:
- % (e.g. as part of %20)
- #
What to do about those?
Simply encode them when using the endpoint, for example by using the ASCII Encoding Reference page.
The encodings for the examples above are the following:
- %: %25
- #: %23
With an example
If the path to the file is "test%20special#character/HelloWorld.java", the REST API endpoint can be called in the following way:
/rest/api/1.0/projects/<project>/repos/<repository>/raw/test%2520special$23character/HelloWorld.java