Amazon S3のバケット内にあるファイルをインデックスさせない方法が知りたい


### 解決したいこと

Amazon S3に画像や動画ファイルを保存しています。

このファイルはパブリックにして、見せたい人にだけURLを教えて閲覧してもらっています。

いろんな情報をみると、パブリックにするとクローラーにインデックスされて何かしらの検索でヒットしてしまうという情報をみました。

パブリックにした状態でブラウザの検索結果に表示させないようにしたいです。

### 発生している問題・エラー

以下のファイルをルートドメインに配置すればクローラーの巡回を回避できるのは知っているのですが、これをバケットの最上位に入れれば、私のバケット内にある画像ファイル等はインデックスされないようになるのでしょうか？

robots.txt

[code]

    User-agent: *
    Disallow: /
    
[/code]

ドメインを取得して、その中に画像ファイル等を入れているのではなく、ただただS3のバケット内にファイルを保存している状態です。

よろしくお願いいたします。




原則として、そのオブジェクトの公開URLがパブリックになっておりクローラか見つけない限りインデックスされることはないはずですが、おそらくそのURLが再度シェアされたりした場合のことを想定しているかと思います。

あくまでもわたしの想定では、たしかにrobots.txtに記載することで大抵のケースは大丈夫な気はします。ただし、例外は考えられます。

  * 非推奨である（ドメインベースではなく）パスベースのURLを使用された場合、意味を持ちません。（よっぽどのことがなければ普通は起きないはず）

単純にインデックスされたくない、あるいは当人以外に表示すべきでない場合、いくつかの対策は考えられます。

  * もし、それがワンタイムのファイルDLなどでシステムからURLがリアルタイムに払い出せるようであれば、署名付きURLを使用すれば一定時間で利用できなくなるリンクを作成できるので安全です。 
    * ファイルのDLやストリーミングなどには向いています
  * オブジェクトのヘッダーに `X-Robots-Tag: noindex`のような[クローラ制御用のヘッター](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag?hl=ja#xrobotstag)をメタデータとして使用することができそうです。ただし、これはドキュメントには明文化されていない仕様のようです。  
<https://stackoverflow.com/a/25798148/4698341>

    * 同様に、[Lambdaでレスポンスを加工する](https://dev.classmethod.jp/articles/s3-object-lambda/)ことも可能ですが、オーバーコスト感？

