質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

意見交換

クローズ

14回答

814閲覧

S3のアップロードについて

net0726

総合スコア6

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2024/02/18 04:36

0

0

テーマ、知りたいこと

S3のアップロードのパフォーマンス向上で、
昔はランダムなプレフィックスを付けてアップロードすれば
AWS側でのパーティションが分散されるので速くなると書いていました。
そもそも、プレフィックスって「/」ですよね。これってWindowsもLinux
ファイル名では使えない文字ですよね・・・。
そもそもどうやってランダムなプレフィックスをつけてS3に
アップロードなんてできるのでしょうか?

背景、状況

いろんなサイトを見たのですがさっぱりわからずです・・・

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答14

#1

maisumakun

総合スコア145956

投稿2024/02/18 05:03

プレフィックスって「/」ですよね。

おそらく、解釈を間違えています。固定の「/」は「ランダムな」プレフィックスにはなり得ません。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

yu_1985

総合スコア7586

投稿2024/02/18 05:28

プレフィックスについて誤解しているようですので、以下のドキュメントをご参照ください。

プレフィックスを使用してオブジェクトを整理する

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

net0726

総合スコア6

投稿2024/02/18 05:34

#1
#2
ご回答ありがとうございます。
オブジェクト名より前の部分がプレフィックスだと思うのですが、
ランダムなプレフィックス名を付けてアップロードとは、具体的にどのようなファイル名
をアップロードすることになるのでしょうか?「/」はファイル名には使えないのに、
プレフィックスを付けるという所がしっくり来ていないです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

yu_1985

総合スコア7586

投稿2024/02/18 05:46

ドキュメントにも記載がありますが、/はプレフィックスの区切り文字として使われます。
区切り文字なのでファイル名には使えないというシンプルな話です。
具体的にどのようにするかは貼ったドキュメントに詳しく書いてあるのでよく読んでみてください。

以下も参考になります。
Amazon S3 リクエストレートについて、プレフィックスとネストされたフォルダの違いは何ですか? S3 バケットではいくつのプレフィックスを持つことができますか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

net0726

総合スコア6

投稿2024/02/18 06:04

#4
こちらの記事は読んだのですが、わからなかったんですよね。
「プレフィックスを付けてアップロードする」とは例えば、
WordFiles/123.txt
という名前のファイルをアップロードする事だと認識しています。
なぜなら、オブジェクト名(123.txt)より前の部分がプレフィックスだからです。
何か大きな勘違いをしているのでしょうか?
そもそも、プレフィックスなんてつけてアップロードすることはできないのでしょうか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#6

yu_1985

総合スコア7586

投稿2024/02/18 06:29

それでよいのですが、逆に何に引っかかっているのでしょうか?
その例だとWordFiles/がプレフィックスになります。

根本的なところだと、S3にはフォルダという概念は実際のところはなく、オブジェクトのパスをkey、ファイルの中身をvalueとして保持しているに過ぎません。
便宜上フォルダという呼称を使われることはありますが。
Amazon S3における「フォルダ」という幻想をぶち壊し、その実体を明らかにする

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#7

net0726

総合スコア6

投稿2024/02/18 07:11

#6

そもそも、プレフィックスなんてつけてアップロードすることはできないのでしょうか

の部分ですが、こちらはできないのでしょうか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#8

yu_1985

総合スコア7586

投稿2024/02/18 07:25

#7
できますし、任意に設定できます。
aws cliなどでアップロードしてみるとわかりやすいです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#9

net0726

総合スコア6

投稿2024/02/18 07:30

コンソール画面のGUIではできないが、AwS CLIならできるという認識でよろしいでしょか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#10

yu_1985

総合スコア7586

投稿2024/02/18 07:42

#9

いいえ。コンソールであっても普通にできます。
コンソールだとGUIでフォルダを扱っている感覚になるので中々イメージが湧きませんが、結局やっていることはAPIにリクエストを渡しているだけなので同じです。
実際に双方試してみると良いです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#11

net0726

総合スコア6

投稿2024/02/18 07:57

#9
GUIからするために、testというフォルダを作って、そこにファイルを入れて、フォルダごとをアップロードしたら
キー名が下記のオブジェクトができました。つまり、これがプレフィックスを付けてアップロードした
ということですね?

test/新しいテキスト ドキュメント.txt

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#12

yu_1985

総合スコア7586

投稿2024/02/18 08:48

#11
はい、それであっています。そのオブジェクトのプレフィックスはtest/です。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#13

net0726

総合スコア6

投稿2024/02/18 10:09

#12
ようやく理解できました。こんな単純なことなのに混乱したのは、フォルダとプレフィックスとは
違うものだ!という文言がいっぱいあり、まさかフォルダをアップロードするとその情報がプレフィックスに変換されるなんて考えていなかったからです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#14

yu_1985

総合スコア7586

投稿2024/02/18 11:14

#13
まず、#6 に書いた通りでS3には本来フォルダという概念がありません。
貼ったドキュメントにはよく解説されているのでどれもよく読んでみることをお勧めします。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問