1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon S3 ファイルゲートウェイでフォルダ階層を作ったときの S3 側の状況

Last updated at Posted at 2025-03-04

はじめに

お疲れ様です。矢儀 @yuki_ink です。

S3 ファイルゲートウェイ、使ってますか??

S3 ファイルゲートウェイは、S3の存在を隠蔽して(S3を意識することなく)SMBでファイルサーバのようにS3にアクセスできる非常に便利なツールです。
が、S3を意識しなくていいために、ファイルゲートウェイを作って使い始めたあとに、S3側の状況がどうなっているか確認することはないと思います(私だけ??)

ということで、今回はファイルゲートウェイの裏側のS3がどのようになっているか見ていきます。

なお、今回は以下の記事で作ったファイルゲートウェイの環境を流用して検証を行います。

先に結論

  • ファイルゲートウェイ上のフォルダ階層は、そのままマネジメントコンソールのS3画面上でも「フォルダ」として表示される
  • フォルダ階層は / で表現される
  • オブジェクトのS3 URIはこんな感じになる
    s3://(バケット名)/(フォルダ名)/(ファイル名)
  • オブジェクトのARNはこんな感じになる
    arn:aws:s3:::(バケット名)/(フォルダ名)/(ファイル名)

何も想像を裏切らない!!!!!w

やってみた

今回確認したいのは以下の2点です。

  1. フォルダ階層を作ったときに、フォルダとファイルがS3側でどのように扱われるか
  2. 日本語のフォルダ・ファイルは、S3側でどのように扱われるか

ファイルゲートウェイでフォルダ階層を作る

Windowsでファイルゲートウェイをマウントして(ドライブレター:Y)、Exploreから手動で以下のフォルダ構造を作りました。

Y:\
│   text1.txt
│   日本語1.txt
│
├───folder1
│   │   text2.txt
│   │   日本語2.txt
│   │
│   └───foleder2
│           text3.txt
│           日本語3.txt
│
└───日本語
        text4.txt
        日本語4.txt

ファイルゲートウェイ直下がこんな感じ。
image.png

S3 側の状況を見てみる

ファイルゲートウェイと紐づくS3バケットを見てみます!

直下がこんな感じ。Exploreでの見た目と完全一致です。
image.png

folder1 に潜ってみると、こんな感じ。これもExploreでの見た目と完全一致です。
image.png

さらに folder2 に潜ってみると、これまた完全一致。
image.png

text3.txt のS3 URIとAmazon リソースネーム (ARN)は以下の通りでした。

  • S3 URI:s3://standard-bucket-for-storage-gateway/folder1/foleder2/text3.txt
  • ARN:arn:aws:s3:::standard-bucket-for-storage-gateway/folder1/foleder2/text3.txt

ここから、フォルダ階層が / で表現されていることが分かります。

日本語のフォルダ、ファイルも同様でした。
日本語3.txt のS3 URIとAmazon リソースネーム (ARN)は以下の通りでした。

  • S3 URI:s3://standard-bucket-for-storage-gateway/folder1/foleder2/日本語3.txt
  • ARN:arn:aws:s3:::standard-bucket-for-storage-gateway/folder1/foleder2/日本語3.txt

また、日本語のフォルダ配下のファイルは、マネジメントコンソール上ではこのように表示されました。
image.png

日本語4.txt のS3 URIとAmazon リソースネーム (ARN)は以下の通りでした。

  • S3 URI:s3://standard-bucket-for-storage-gateway/日本語/日本語4.txt
  • ARN:arn:aws:s3:::standard-bucket-for-storage-gateway/日本語/日本語4.txt

image.png
※オブジェクトURLの表記はさすがにエンコードされていますねw

というわけで結論ですが、

  • ファイルゲートウェイ上のフォルダ階層は、そのままマネジメントコンソールのS3画面上でも「フォルダ」として表示される
  • フォルダ階層は / で表現される
  • オブジェクトのS3 URIはこんな感じになる
    s3://(バケット名)/(フォルダ名)/(ファイル名)
  • オブジェクトのARNはこんな感じになる
    arn:aws:s3:::(バケット名)/(フォルダ名)/(ファイル名)

終わりに

まったく想像を裏切らない結果となりましたww

この結果が得られて何がうれしいかといえば、
例えば、「ファイルゲートウェイの○○フォルダにCSVファイルを置いたら、S3イベント通知でLambdaがキックされ、CSVが加工され、加工されたファイルが××フォルダに格納される」というようなことが、感覚的に容易に実装できます。
(参考)S3 バケットに csv ファイルがアップロードされたら Lambda を動かしてみる

▼S3イベント通知でプレフィックスを設定すれば、特定のフォルダを指すことができます
image.png

最後までお読みいただき、ありがとうございました!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?