2

これは一般的なファイルシステムにも当てはまります。

私の場合、キー(ファイル名)が実際にはURLパスであるAws-S3にファイルを書きたいと思います。

例えば ​​:

url = "http://example.com/where/are/we/"

ファイル名は

filename = "where/are/we/"

S3 に書き込むには:

s3 = AWS::S3.new
s3.buckets[BUCKET].objects["locations/#{filename}"].write(file_contents)

しかし、予想どおり、キーは内部にサブフォルダーを作成しますBUCKET/locations/where/are/we/

私の最後の手段はfilename.gsub!('/', '_')

可能な解決策/回避策は素晴らしいでしょう!

4

2 に答える 2

3

S3 キーは、フォルダーやファイル名ではなくキーです。しかし、多くのツールはそれらをフォルダーやファイルのように処理します (完全に理にかなっています)。誰もがフォルダーとファイルの類推を思いつくので、キーをフォルダーとファイルのように扱います。つまり、キーにスラッシュを使用しないでください。

別のアプローチは、コンテキストで意味のあるファイル名を追加することです。where/are/we/index.htmlたとえば、そのようなキーの下でバケットにウェブっぽいコンテンツを保存する場合は、where/are/we/.

于 2013-10-22T10:48:38.663 に答える
0

で解決しましたfilename.gsub!('/', '_')。ファイル名にスラッシュを使用できないためです。

于 2013-12-22T09:44:00.997 に答える