【考え中】S3のオブジェクトURLの扱い

S3に画像をアップロードする処理は一通り実装できているのですが、画像アップロード後にS3オブジェクトのpublicなURLを取得する方法がわからず、調査中。 Stack OverFlowでは以下の質問などが見つかりました。

stackoverflow.com

質問内容が
「s3オブジェクトのpublicの永続的なURLを取得する必要があって、Java AWS SDKだとgetResourceUrl()って関数があるんだけどgoでも同じようなのありますか?」
って感じで、回答が
「presingedURLならgoのSDKで取得用のメソッドが用意されてるけど、publicなURLは自分で実装できますよ」
という感じ。

実装例として以下のコードを書いてくれていました。

url := "https://%s.amazonaws.com/%s/%s"
url = fmt.Sprintf(url, "us-east-2", "my-bucket-name", "some-file.txt")

AWS SDKのこの関数使えばpublicのURL取得できるよ」という回答を期待したのですが、なぜかgoのSDKにはないっぽい。(まだ深く調べたわけではないので引き続き調査してみたい)

そのため、回答にあるように自前でオブジェクトURLを定義しようかなと考えてます。そうなると英語のファイル名は問題なさそうなのですが、日本語のファイル名の場合うまくencodingできるかなどまだ見えてません。
とりあえず手を動かしながら考えてみようと思います。

もしかしたらファイル名ではなく、画像アップロード時の時間をS3のオブジェクトURLにするように実装したらファイル名が日本語でも問題ないかもとも考えており、いろいろ試してみたいと思います。