对象存储OSS存储的文件(Object)信息包含Key、Data和Object Meta。Object Meta是对文件的属性描述,包括HTTP标准属性(HTTP Header)和用户自定义元数据(User Meta)两种。您可以通过设置HTTP标准属性来自定义HTTP请求的策略,例如文件(Object)缓存策略、强制下载策略等。您还可以通过设置用户自定义元数据来标识Object的用途或属性等。
上传文件时指定文件元数据
使用put
、putStream
和multipartUpload
时,都可以通过指定meta参数来指定文件的元数据:
const OSS = require('ali-oss');
const path = require('path');
const client = new OSS({
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'oss-cn-hangzhou',
// 使用V4签名算法
authorizationV4: true,
// yourBucketName填写Bucket名称。
bucket: 'yourBucketName',
// yourEndpoint填写Bucket所在地域对应的公网Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
});
async function put() {
try {
// 元数据设置方式:作为 options 对象的 meta 属性
let result = await client.put('object-name', path.normalize('D:\\localpath\\examplefile.txt'), {
meta: {
year: '2025', // 元数据值应该是字符串
people: 'mary'
}
});
console.log(result);
} catch (e) {
console.log(e);
}
}
put();
修改已有文件的文件元数据
您还可以通过putMeta接口来更新文件元数据:
const OSS = require('ali-oss');
const client = new OSS({
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'oss-cn-hangzhou',
// 使用V4签名算法
authorizationV4: true,
// yourBucketName填写Bucket名称。
bucket: 'yourBucketName',
// yourEndpoint填写Bucket所在地域对应的公网Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
});
async function putMeta() {
try {
let meta = { year: 2025, people: 'jack' };
let result = await client.putMeta('object-name', meta);
console.log(result);
} catch (e) {
console.log(e);
}
}
putMeta();
获取文件元数据
您可以通过head接口来获取文件元数据。
const OSS = require('ali-oss');
const client = new OSS({
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'oss-cn-hangzhou',
// 使用V4签名算法
authorizationV4: true,
// yourBucketName填写Bucket名称。
bucket: 'yourBucketName',
// yourEndpoint填写Bucket所在地域对应的公网Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
});
async function headInfo() {
// 填写文件完整路径,例如exampledir/exampleobject.txt。文件完整路径中不能包含Bucket名称。
const result = await client.head("exampledir/exampleobject.txt");
console.log(result);
}
headInfo();
该文章对您有帮助吗?