将名称包含上载斜线的文件上传到AWS S3存储桶

时间:2019-01-24 06:52:53

标签: amazon-s3 trailing-slash

我正在尝试通过Python上的boto3将一些文件上传到S3上的存储桶中。

这些文件名是网站地址(例如www.google.com/gmail)。

我希望文件名是网站地址,但实际上它创建了一个名为“ www.google.com”的文件夹,并在上传的文件中创建了一个名为“ gmail”的文件夹

我试图用双斜杠和反斜杠在末尾的斜杠之前解决它,但是没有用。

有什么方法可以忽略斜杠并上传名称为网站地址的文件吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

您误解了S3-它实际上没有“文件夹”结构。存储桶中的每个对象都有一个唯一的键,并且可以通过该键访问该对象。

某些S3实用程序(包括公平地说是AWS控制台)伪造了一个“文件夹”结构,但这与S3的工作方式并不太相关。

或者换句话说,不用担心。只需使用密钥中的/创建对象,一切都会按您的预期进行。

答案 1 :(得分:2)

S3具有扁平结构,没有文件夹。您看到的“文件夹”是AWS控制台中的一项功能,可让您更轻松地浏览对象。控制台将根据斜杠前的前缀将对象归入“文件夹”中。

没有什么可以阻止您在S3对象键中使用斜杠。通过boto使用API​​时,您可以引用完整的URL,并应获取对象。

请参阅:https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-folders.html