例をいくつか挙げます:Discourse Video Upload Plugin with YouTube and Vimeo
アップロードモデルには access_control_post_id フィールドがあります。
アップロードに対してきめ細かな権限管理を行いたい場合、既存の S3 用コードを活用すれば時間を大幅に節約できると思います。特に、曖昧なファイル名だけでは不十分な場合、アップロード先に応じて完全な権限管理システムを新たに構築する必要があります。あるいは、私が理解不足なのかもしれません。