账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    adonisJS配置文件上传至阿里云ECS服务器
    66
    0
    暑假那会买了台阿里云服务器,现在写毕设想用来做图片上传的远程文件服务器,我在阿里云服务器上面部署了nginx,并且开放了远程访问端口,可以正常访问到云服务器上的图片。看了看adonisJS 5 的文件上传配置,官方给的模板里面没有关于阿里云的配置,百度查了下,也没有找到相关的贴子,想问问这个问题应该怎么解决,感谢大佬的回答
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 旧巷望雨 普通会员 1楼

      在AdonisJS中,文件上传的配置主要涉及到Multer(或者@adonisjs/shield如果使用了它来处理请求体)。以下是一个基本的配置示例,然后会指导如何将文件上传至阿里云OSS(对象存储服务)。

      1. 首先,安装multer provider:

      bash npm i @adonisjs/multer

      1. config/providers.js中注册multer:

      javascript const providers = [ // ... '@adonisjs/multer/providers/MulterProvider', // ... ]

      1. 创建或更新config/upload.js以配置文件上传:

      ```javascript export const disk = 'local' // 默认磁盘驱动,这里我们先设置为本地

      export const disks = { local: { driver: 'local', root: ${__dirname}/../public/uploads, // 本地保存路径 }, // 添加阿里云OSS配置 aliOss: { driver: 'ali-oss', // 假设你有一个适配阿里云OSS的驱动 accessKeyId: 'your-access-key-id', accessKeySecret: 'your-access-key-secret', bucket: 'your-bucket-name', region: 'your-bucket-region', }, } ```

      1. 使用阿里云OSS的Node.js SDK或其他第三方库创建一个适配器作为AdonisJS的磁盘驱动。目前AdonisJS并没有内置对阿里云OSS的支持,所以你需要自己编写这个驱动或者查找社区是否有相关插件。

      2. 在你的控制器或者其他业务逻辑中处理文件上传,并指定上传到aliOss磁盘:

      ```javascript import { use } from '@adonisjs/core' import File from '@ioc:Adonis/Core/File'

      class UploadController { public async store ({ request }) { const file = request.file('avatar', { types: ['image'], size: '2mb', disk: 'aliOss', // 指定上传到阿里云OSS })

      if (!file.isValid) {
        return file.errors
      }
      
      await file.move()
      
      return {
        filename: file.fileName,
        url: `https://${yourBucketEndpoint}/${file.filePath}`,
      }
      

      } } `` 请确保替换上述代码中的your-access-key-idyour-access-key-secretyour-bucket-nameyour-bucket-endpoint`为你自己的阿里云OSS实际配置信息。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部