For the security by obscurity option there is one drawback, once an actor has the URL to the actual resource, there needs to be a mechanism in place to revoke it.
This scenario might be, User 1 blocks User 2 on a social site, but user 2 secretly saved all the URL's to User 1's media and hence still has access at a URL level.
To circumvent this, I recommend using an intermediate rotating directory level as part of the URL fabrication. If the rotating key is associated with the owner of the resource, then a new URL can be constructed every time security changes.
Problem Example
User 1 and User 2 are friends on a social media site
User 1 uploads an image (myimage.jpg) on a social site
The system saves the physical image to the file system under a new unique file name and directory structure
/UserFiles/<User1 ID>/<Rotating User Key>/Images/<Stupidly long unguessable filename>.jpg
The filename is stored in a database so that when we ask for User1's pictures, we are served with the URL
User 2 visits User 1 and opens their social media gallery
User 2 received the URLs for all user 1's uploaded images as part of a web page
User 2 (sneaky) saves all the exact image URLs into notepad so they can look at them outside of the context of the User1's social media gallery
User 1 blocks user 2 on the social media site.
User 2 requests user 1's social media gallery from the server and is rejected as they are blocked.
User 2 uses the saved URL's they copied to notepad earlier and pastes them directly into the browser
User 2 can still view the images, even though they are blocked.
Solution
We saved the physical file to
/UserFiles/<User1 ID>/<Rotating User Key>/Images/<Stupidly long unguessable filename>.jpg
As part of the User record in the database have a field Rotating_User_Key, probably a UUID or something unguessable
When security changes, we generate a new NEW Rotating User Key and update the directory structure in the physical file system.
/UserFiles/<User1 ID>/<NEW Rotating User Key>/Images/<Stupidly long unguessable filename>.jpg
We save the NEW Rotating User Key to the user store, so we can construct further URLs for User1's resources.
User 2 is blocked at website level and their saved URL's are invalid.