Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 AWS S3 SDK获取文件夹而不是文件_Amazon S3_Amazon Web Services - Fatal编程技术网

Amazon s3 AWS S3 SDK获取文件夹而不是文件

Amazon s3 AWS S3 SDK获取文件夹而不是文件,amazon-s3,amazon-web-services,Amazon S3,Amazon Web Services,下面的代码可以从AWS 3获得一个文件,但是文件夹呢 var _key:int=Account.lessons[dl_i].id; var dest:String = Conf.Dir+_key; var request:GetObjectRequest = new GetObjectRequest().WithBucketName(Conf.bucketName).WithKey(_key+""); var response:GetObjectResponse = client.GetO

下面的代码可以从AWS 3获得一个文件,但是文件夹呢

var _key:int=Account.lessons[dl_i].id;
var dest:String =  Conf.Dir+_key;
var request:GetObjectRequest  = new
GetObjectRequest().WithBucketName(Conf.bucketName).WithKey(_key+"");
var response:GetObjectResponse  = client.GetObject(request);
response.WriteResponseStreamToFile(dest);

AmazonS3中没有文件夹之类的东西。它是一个“平面”文件系统。离文件夹越近的地方就是在文件名中添加前缀,如
foo/bar/filename.txt
。 尽管有几个S3工具会向您展示一些东西,就好像它们包含在文件夹中一样,但S3上并不存在这个概念


请参阅此相关线程:

下面的javascript代码将计算“文件夹”中的文件数;事实上,它将列出共享名称相同部分的对象,正如@Viccari指出的,没有文件夹。内容将是一个数组,包含“文件夹中的文件”的详细信息,然后您将“获取文件夹”

有关详细信息,请参阅

  • 上面的内容是从哪里来的

从AWS s3复制整个目录的正确方法是:

$aws s3 cp s3://源awsexamplebucket/s3://目标awsexamplebucket/--递归

有关更多信息和其他标记,如--inlcude或--exclude,请参阅此处的文档:

var bucket  = 'the_bucket_name';
var path_to_folder = 'path/to/the/folder/';
var params= {Bucket: bucket, Delimiter: path_to_folder };
s3.listObjects(params, function (err, data) {
    if (err) {
      console.log('Could not load objects from S3', err);
    } else {
        console.log('Loaded ' + data.Contents.length + ' items from S3');
    }
});