Node.js判断文件是否存在

对存储空间(Bucket)中的任意文件(Object)进行相关操作前,您需要先判断该文件是否存在。

以下代码用于判断文件是否存在:

const OSS = require('ali-oss');

const client = new OSS({
  // yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
  region: 'yourregion',
  // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // yourBucketName填写存储空间名称。
  bucket: 'yourBucketName',
});

async function isExistObject(name, options = {}) {
  try {
      await client.head(name, options);
      console.log('文件存在')
   }  catch (error) {
      if (error.code === 'NoSuchKey') {
        console.log('文件不存在')
      }
   }
}
// 用于判断未开启版本控制状态的Bucket中的Object是否存在。
// yourObjectName填写不包含Bucket名称在内的Object的完整路径,例如example/test.txt。
const name = 'yourObjectName'
isExistObject(name)

// 用于判断受版本控制Bucket中指定versionId的Object是否存在。
const options = {
    // YourObjectVersionId填写Object的versionId。
    versionId: 'YourObjectVersionId' 
}
isExistObject(name, options)