2013-10-28 25 views
0

所以我有一個Node中的應用程序訪問桶中的東西。我希望它能夠透明地在任何地區使用桶。不幸的是,構建端點URL的方式根據您所處的區域而不同。是否有自動構建AWS S3存儲桶端點的方法,無論區域如何?

如果它是美國標準,我可以說http://s3.amazonaws.com/BUCKETNAME/path/to/file。如果它在其他地方,那就行不通了(非巧合的是,您僅限於域名允許的字符(僅限小寫字母和數字)非美國標準中的存儲桶名稱),並且您使用http://BUCKETNAME.s3.amazonaws.com/path/to/file

(請注意,你可以得到更復雜,說

我在想這是不是唯一的問題,所以希望把它在那裏。

回答

1

http://bucketname.s3.amazonaws.com/path/to/file作品在美國的標準還,所以你應該能夠在任何地方的任何桶上使用這個單一的構造(除非我在你的問題中丟失了某些東西)

+0

好吧,我非常困惑我最初的研究表明美國標準桶名稱具有更大的字符集(可以有大寫字母和小寫字母)例如,AAbbCC是美國標準的合法名稱,與AA不同BBCC。因此它不適用於http://bucketname.s3.amazonaws.com/path/to/file格式。 (因爲域名不區分大小寫)。當然,路徑名可以區分大小寫。你能否確認/否認/明確表態? – TerminalDilettante

+1

你說得對 - 他們「有」擴展的字符集,但*使用*這些額外的字符是一個非常糟糕的主意......小寫dns兼容的存儲桶名稱是最好的和最不可能有問題的做法。 http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html最後一句。 –

+1

當然,你不能用這種方式來解決名稱不兼容的桶問題。這個事實會破壞一些S3庫和工具,因爲它們假設所有的桶都通過這個機制工作。 –