uniCloud.uploadFile 使用阿里云存储 typescript编写
时间: 2024-01-18 15:13:18 浏览: 32
以下是使用typescript编写uniCloud.uploadFile的示例代码:
```typescript
import { createClient } from '@alicloud/oss-sdk';
import { IUniCloudContext } from 'dcloudio/uni-cloud';
export async function uploadFile(
ctx: IUniCloudContext,
file: Buffer,
key: string
): Promise<string> {
const { ALIYUN_ACCESS_KEY_ID, ALIYUN_ACCESS_KEY_SECRET, ALIYUN_OSS_BUCKET, ALIYUN_OSS_REGION } = ctx.env;
const client = createClient({
accessKeyId: ALIYUN_ACCESS_KEY_ID,
accessKeySecret: ALIYUN_ACCESS_KEY_SECRET,
region: ALIYUN_OSS_REGION,
bucket: ALIYUN_OSS_BUCKET,
});
await client.put(key, Buffer.from(file));
return `https://${ALIYUN_OSS_BUCKET}.${ALIYUN_OSS_REGION}.aliyuncs.com/${key}`;
}
```
此代码使用 @alicloud/oss-sdk 库与阿里云对象存储进行交互,将文件上传到指定的桶中,并返回文件的URL地址。在函数参数中,我们传入了 UniCloud 的上下文对象 ctx,其中包含了当前环境的环境变量(包括阿里云的 accessKeyId、accessKeySecret、bucket 和 region),以及要上传的文件和文件名。在函数中,我们创建了一个阿里云对象存储的客户端实例 client,并使用其 put 方法上传文件。最后,我们返回了上传文件的 URL 地址,用于后续的处理。