Custom resources allow you to store binaries needed for extended custom functionality.
If you need to use custom Java libraries, you can upload *.jar files and they will appear in the Server resources table and will be available in server-side blocks (remember to declare the library in block’s Imports section!).
Custom resources are intended for storing binaries related to program execution.
In case you need to store binaries which are an essential part of a particular data type, consider using type instances with binary fields instead. For example, if you need an image which is referred by a style sheet, you should upload it to Custom resources.
However, if you need a predefined list of countries and you want to include a flag image for each country, the recommended way would be to add the Flag field (type Binary) to the Country type, create Country type instances for respective countries and upload flag image for each instance.