5

我正在尝试使用 ruby​​ aws-sdk gem 将整个目录上传到 s3。我首先尝试将其分解为较小的问题,因此我目前要做的只是创建一个文件夹,然后在该文件夹中放置一个文件。我知道从技术上讲 s3 没有文件夹,而是对象。我知道你可以有一个类似目录的结构。我在网上找不到任何关于如何做到这一点的信息,除了使用 AWS::S3::Tree 阅读之外,文档也没有提到很多关于目录结构的内容

这是我目前尝试创建文件夹然后将文件添加到文件夹:

#created an object called test
obj = bucket.objects.create('test', 'data')

#this is the path to a css file that I am uploading. 
path_to_file = './directory/mobile/player.css'

#writing file to test object
obj.write(Pathname.new(path_to_file))

这实际上是在编写 css 文件进行测试。我想要它做的是在名为 test 的文件夹中创建一个 css 文件。

我确定我误解了对象与目录相关的方式。谁能发现我哪里出错或指出我正确的方向?

4

1 回答 1

1

您可以使用以下代码:

# Instantiate the S3 client with your AWS credentials
s3 = AWS::S3.new(
  :access_key_id => 'Aws_Access_Key',
  :secret_access_key => 'Aws_Secret_Key'
)

# If you want to create bucket
# bucketName: name of the bucket
bucket = s3.buckets.create('bucketName', :acl => :public_read)

# push file to s3
# bucketName: Amazon Bucket Name 
# key: The file location that you want to create for your file.
# e.g, key = "user/appName/myapp.zip"  
# File_To_Save: The location of your file. 

obj = bucket.objects['key']
obj.write(:file => file_name)
puts obj.public_url

# This key describes the directory structure for your file
于 2014-04-23T08:48:08.530 回答