阿里云OSS对象存储的使用

发布于 2022-09-07 08:26:06 字数 1729 浏览 31 评论 0

  1. 为了后面页面的扩展,我想迁移现有项目的静态资源和上传文件到阿里云的OSS上。
  2. 可是我的上传图片功能,是通过前端传base64,后台解码,然后转移到磁盘上。
  3. oss类中有方法uploadFile()
    /**
     * 上传本地文件
     *
     * @param string $bucket bucket名称
     * @param string $object object名称
     * @param string $file 本地文件路径
     * @param array $options
     * @return null
     * @throws OssException
     */
    public function uploadFile($bucket, $object, $file, $options = NULL)
    {
        $this->precheckCommon($bucket, $object, $options);
        OssUtil::throwOssExceptionWithMessageIfEmpty($file, "file path is invalid");
        $file = OssUtil::encodePath($file);
        if (!file_exists($file)) {
            throw new OssException($file . " file does not exist");
        }
        $options[self::OSS_FILE_UPLOAD] = $file;
        $file_size = filesize($options[self::OSS_FILE_UPLOAD]);
        $is_check_md5 = $this->isCheckMD5($options);
        if ($is_check_md5) {
            $content_md5 = base64_encode(md5_file($options[self::OSS_FILE_UPLOAD], true));
            $options[self::OSS_CONTENT_MD5] = $content_md5;
        }
        if (!isset($options[self::OSS_CONTENT_TYPE])) {
            $options[self::OSS_CONTENT_TYPE] = $this->getMimeType($object, $file);
        }
        $options[self::OSS_METHOD] = self::OSS_HTTP_PUT;
        $options[self::OSS_BUCKET] = $bucket;
        $options[self::OSS_OBJECT] = $object;
        $options[self::OSS_CONTENT_LENGTH] = $file_size;
        $response = $this->auth($options);
        $result = new PutSetDeleteResult($response);
        return $result->getData();
    }
  1. 需要三个参数,可是我base64解码的文件按理说应该是没有路径的,那么我如何在不修改现有功能的情况下,使用oss的上传功能呢?
  2. 请大佬解惑。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

神魇的王 2022-09-14 08:26:06

……你解码以后存一下再发给OSS不就得了。。。。

南汐寒笙箫 2022-09-14 08:26:06

方法不对uploadFile()传本地文件的,oss还有个putObject()方法,用来直接传内存数据,我之前的项目中As3直接HttpRequest传base64数据到后端,获取到了直接传入就能用的。

国粹 2022-09-14 08:26:06

oss 有个web直传的功能,更爽

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文