<?php
namespace  App\Lib\Ccwl\Oss;

interface IOssDriver {

    /**
     * 判断对象是否存在
     * 
     * @param string $object OSS上最终的 文件路径+文件名
     * 
     * @return mixed bool|int
     */
    public function doesObjectExist($object);

    /**
     * 上传文件对象
     * 
     * @param string $object OSS上最终的 文件路径+文件名
     * @param string $filePath 待上传的本地文件路径
     * @param array $options 参数选项， 默认为空
     * 
     * @return mixed bool|array
     */
    public function uploadFile($object, $filePath, $options=[]);


     /**
     * 删除对象
     * 
     * @param string $object OSS上最终的 文件路径+文件名
     * 
     * @return mixed bool|array
     */
    public function deleteObject($object);


     /**
     * 获取对象上传的签名URL
     * 
     * @param string $object OSS上最终的 文件路径+文件名
     * @param array $options  文件类型
     * 
     * @return mixed bool|string
     */
    public function getSignedUrl($object, $options=['Content-Type'=>'image/jpeg']);

    /**
     * 写入文件对象
     * 
     * @param string $object OSS上最终的 文件路径+文件名
     * @param string $content 对象内容
     * @param array $options 参数选项， 默认为空
     * 
     * @return mixed bool|array
     */
    public function putObject($object, $content, $options=[]);


    /**
     * 获取错误信息
     * 
     * @return string 错误信息
     */
    public function getError();

}