Vu *_*Duy 1 amazon-s3 amazon-web-services node.js
我正面临删除包含Amazon S3上的照片的文件夹的问题
1.创建文件夹
var params = {Bucket: S3_BUCKET, Key: "test/", ACL:"public-read"};
s3.putObject(params, function(err, data) {
});
Run Code Online (Sandbox Code Playgroud)
2.上传照片
var body = fs.createReadStream(filePath);
var params = {Bucket: S3_BUCKET, Key: "test/flower.jpgg", Body: body, ContentType:"image/jpeg", ACL:"public-read"};
s3.upload(params, function(err, data) {
});
Run Code Online (Sandbox Code Playgroud)
3.删除文件夹
var params = {Bucket: S3_BUCKET, Key: "test/"};
s3.deleteObject(params, function(err, data) {
});
Run Code Online (Sandbox Code Playgroud)
如果文件夹没有照片,删除功能效果很好.但它包含照片,删除将无法正常工作.
请帮忙.感谢所有支持.
这里的问题是概念问题,从第1步开始.
这不会创建文件夹.它创建一个占位符对象,控制台将显示为文件夹.
以尾部"/"命名的对象显示为Amazon S3控制台中的文件夹.
http://docs.aws.amazon.com/AmazonS3/latest/UG/FolderOperations.html
没有必要这样做 - 使用此键前缀创建对象仍将导致控制台显示文件夹,即使不创建此对象也是如此.从同一页面:
Amazon S3具有扁平结构,没有您在典型文件系统中看到的层次结构.但是,为了简化组织,Amazon S3控制台支持将文件夹概念作为对对象进行分组的方法.Amazon S3通过使用对象的键名前缀来完成此操作.
由于在步骤1中您实际上并未创建文件夹,因此删除占位符对象也不会删除该文件夹.
文件夹实际上并不存在于S3中 - 它们仅用于控制台中的显示目的 - 因此无法正确地将对象称为"在"文件夹中.删除文件夹中"所有"对象的唯一方法是单独显式删除对象.同样,重命名文件夹的唯一方法是重命名文件夹是重命名其中的对象...而重命名对象的唯一方法是使用新密钥复制对象,然后删除旧文件夹宾语.
| 归档时间: |
|
| 查看次数: |
3978 次 |
| 最近记录: |