Skip to content

Commit 5402798

Browse files
committed
增加文件夹示例
1 parent 69f7d9e commit 5402798

File tree

1 file changed

+126
-1
lines changed

1 file changed

+126
-1
lines changed

demo/demo.js

Lines changed: 126 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -969,7 +969,129 @@ function sliceCopyFile() {
969969
});
970970
}
971971

972-
getService();
972+
function uploadFolder() {
973+
var localFolder = path.resolve(__dirname, '../test/');
974+
var remotePrefix = 'folder/';
975+
fs.readdir(localFolder, function (err, list) {
976+
if (err) return console.error(err);
977+
var files = list.map(function (filename) {
978+
var Key = remotePrefix + filename;
979+
return {
980+
Bucket: config.Bucket, // Bucket 格式:test-1250000000
981+
Region: config.Region,
982+
Key: Key,
983+
FilePath: path.resolve(localFolder, filename),
984+
};
985+
});
986+
cos.uploadFiles({
987+
files: files,
988+
SliceSize: 1024 * 1024,
989+
onProgress: function (info) {
990+
var percent = parseInt(info.percent * 10000) / 100;
991+
var speed = parseInt(info.speed / 1024 / 1024 * 100) / 100;
992+
console.log('进度:' + percent + '%; 速度:' + speed + 'Mb/s;');
993+
},
994+
onFileFinish: function (err, data, options) {
995+
console.log(options.Key + ' 上传' + (err ? '失败' : '完成'));
996+
},
997+
}, function (err, data) {
998+
console.log(err || data);
999+
});
1000+
});
1001+
}
1002+
1003+
function listFolder() {
1004+
var _listFolder = function(params, callback) {
1005+
var Contents = [];
1006+
var CommonPrefixes = [];
1007+
var marker;
1008+
var next = function() {
1009+
params.Marker = marker;
1010+
cos.getBucket(params, function(err, data) {
1011+
if (err) return callback(err);
1012+
data && data.CommonPrefixes && data.CommonPrefixes.forEach(function (item) {
1013+
CommonPrefixes.push(item);
1014+
});
1015+
data && data.Contents && data.Contents.forEach(function (item) {
1016+
Contents.push(item);
1017+
});
1018+
if (data.IsTruncated === 'true') {
1019+
marker = data.NextMarker;
1020+
next();
1021+
} else {
1022+
callback(null, {
1023+
CommonPrefixes: CommonPrefixes,
1024+
Contents: Contents,
1025+
});
1026+
}
1027+
});
1028+
};
1029+
next();
1030+
};
1031+
_listFolder({
1032+
Bucket: config.Bucket,
1033+
Region: config.Region,
1034+
Delimiter: '/', // 如果按目录列出文件传入该分隔符,如果要深度列出文件不传改参数
1035+
Prefix: 'folder/', // 要列出的目录前缀
1036+
}, function (err, data) {
1037+
console.log(err || data);
1038+
});
1039+
}
1040+
1041+
function deleteFolder() {
1042+
var _deleteFolder = function(params, callback) {
1043+
var deletedList = [];
1044+
var errorList = [];
1045+
var marker;
1046+
var next = function() {
1047+
params.Marker = marker;
1048+
cos.getBucket(params, function(err, data) {
1049+
if (err) return callback(err);
1050+
var Objects = [];
1051+
if (data && data.Contents && data.Contents.length) {
1052+
data.Contents.forEach(function (item) {
1053+
Objects.push({Key: item.Key});
1054+
});
1055+
}
1056+
var afterDeleted = function () {
1057+
if (data.IsTruncated === 'true') {
1058+
marker = data.NextMarker;
1059+
next();
1060+
} else {
1061+
callback(null, { Deleted: deletedList, Error: errorList });
1062+
}
1063+
};
1064+
if (Objects.length) {
1065+
cos.deleteMultipleObject({
1066+
Bucket: params.Bucket,
1067+
Region: params.Region,
1068+
Objects: Objects,
1069+
}, function (err, data) {
1070+
data.Deleted && data.Deleted.forEach(function (item) {
1071+
deletedList.push(item);
1072+
});
1073+
data.Error && data.Error.forEach(function (item) {
1074+
errorList.push(item);
1075+
});
1076+
afterDeleted();
1077+
});
1078+
} else {
1079+
afterDeleted();
1080+
}
1081+
});
1082+
};
1083+
next();
1084+
};
1085+
_deleteFolder({
1086+
Bucket: config.Bucket,
1087+
Region: config.Region,
1088+
Prefix: 'folder/', // 要列出的目录前缀
1089+
}, function (err, data) {
1090+
console.log(err || data);
1091+
});
1092+
}
1093+
1094+
// getService();
9731095
// getAuth();
9741096
// getV4Auth();
9751097
// getObjectUrl();
@@ -1019,3 +1141,6 @@ getService();
10191141
// restartTask();
10201142
// uploadFiles();
10211143
// sliceCopyFile();
1144+
// uploadFolder();
1145+
// listFolder();
1146+
// deleteFolder();

0 commit comments

Comments
 (0)