如何使用 Nodejs API 在 DigitalOcean Bucket 中创建文件夹?
How to create folders in the DigitalOcean Bucket using Nodejs API?
我正在尝试使用 Nodejs 将我的数据存储到 DigitalOcean。我可以执行列表、上传、下载操作。但是谁能告诉我如何使用 API.
在存储桶中创建文件夹
关于 Spaces 和 S3 API(Spaces 被设计为可互操作)的一件重要事情是 "folder" 是实际上只是一个 "key" 大小为零的 "object." 文件夹内的项目将文件夹密钥作为其自身密钥的前缀。例如,这里是一个 Space 中的对象列表,其中一个名为 foo
的文件夹包含一个名为 bar
:
的文件
$ aws s3api --endpoint-url https://nyc3.digitaloceanspaces.com --profile do list-objects --bucket my-bucket
{
"Contents": [
{
"LastModified": "2017-10-17T17:50:50.840Z",
"ETag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
"StorageClass": "STANDARD",
"Key": "foo/",
"Owner": {
"DisplayName": "681451698",
"ID": "681451698"
},
"Size": 0
},
{
"LastModified": "2017-10-17T17:56:08.583Z",
"ETag": "\"8cf8463b34caa8ac871a52d5dd7ad1ef\"",
"StorageClass": "STANDARD",
"Key": "foo/bar",
"Owner": {
"DisplayName": "681451698",
"ID": "681451698"
},
"Size": 2
}
]
}
因此您根本不需要创建文件夹。您可以只上传一个带有 path/to/file.ext
之类的键的对象 如果您希望空 "folder" 在 DigitalOcean Spaces 的控制面板中可见,您可以 "upload" 一个空的具有以尾部正斜杠 (/
) 结尾的键的对象。例如:
const AWS = require('aws-sdk')
const spacesEndpoint = new AWS.Endpoint('sfo2.digitaloceanspaces.com'); // Replace with the endpoint for your region.
const s3 = new AWS.S3({
endpoint: spacesEndpoint,
accessKeyId: 'ACCESS_KEY',
secretAccessKey: 'SECRET_KEY'
});
var params = {
Bucket: "my-spaces-bucket",
Key: "folder/",
};
s3.putObject(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});
我正在尝试使用 Nodejs 将我的数据存储到 DigitalOcean。我可以执行列表、上传、下载操作。但是谁能告诉我如何使用 API.
在存储桶中创建文件夹关于 Spaces 和 S3 API(Spaces 被设计为可互操作)的一件重要事情是 "folder" 是实际上只是一个 "key" 大小为零的 "object." 文件夹内的项目将文件夹密钥作为其自身密钥的前缀。例如,这里是一个 Space 中的对象列表,其中一个名为 foo
的文件夹包含一个名为 bar
:
$ aws s3api --endpoint-url https://nyc3.digitaloceanspaces.com --profile do list-objects --bucket my-bucket
{
"Contents": [
{
"LastModified": "2017-10-17T17:50:50.840Z",
"ETag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
"StorageClass": "STANDARD",
"Key": "foo/",
"Owner": {
"DisplayName": "681451698",
"ID": "681451698"
},
"Size": 0
},
{
"LastModified": "2017-10-17T17:56:08.583Z",
"ETag": "\"8cf8463b34caa8ac871a52d5dd7ad1ef\"",
"StorageClass": "STANDARD",
"Key": "foo/bar",
"Owner": {
"DisplayName": "681451698",
"ID": "681451698"
},
"Size": 2
}
]
}
因此您根本不需要创建文件夹。您可以只上传一个带有 path/to/file.ext
之类的键的对象 如果您希望空 "folder" 在 DigitalOcean Spaces 的控制面板中可见,您可以 "upload" 一个空的具有以尾部正斜杠 (/
) 结尾的键的对象。例如:
const AWS = require('aws-sdk')
const spacesEndpoint = new AWS.Endpoint('sfo2.digitaloceanspaces.com'); // Replace with the endpoint for your region.
const s3 = new AWS.S3({
endpoint: spacesEndpoint,
accessKeyId: 'ACCESS_KEY',
secretAccessKey: 'SECRET_KEY'
});
var params = {
Bucket: "my-spaces-bucket",
Key: "folder/",
};
s3.putObject(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});