文档中心 > 店铺动态卡片-开发指引

小程序访问商家图片空间

更新时间:2023/02/09 访问次数:10832

一、实现能力


实现通过千牛端或手淘端直接上传图片到商家图片空间(https://sucai.wangpu.taobao.com/#/?_k=v0g1bp)。完整的解决方案可参考图片上传解决方案

1.文件访问更好的支持,包括加速、传输安全, 支持小程序ar场景;

2.安全升级,每个ISV空间独立域名,基于独立域名能够更好地安全隔离安全管控。


二、限制条件


1. 只允许在应用端发起调用,不允许服务端发起。   

2. 需要获取权限包:商家应用-商家云存储。 

3. SAAS化模型下,消费者端模板无法调用。只有实例化以后的小程序才可以发起调用。   

4. 目前只支持上传图片,不支持视频音频。   

5. 云SDK版本>=1.2.8。   

6. 图片大小不能超过3M。


三、图片上传位置


注意:在查看图片是否上传到相应账号下时,首先需要保证客户端云SDK版本号>=1.2.8(建议保持最新)低版本的云SDK无商家空间这一概念,会上传到云存储中。

SAAS化模型下,对于商家端小程序,图片上传到当前登录账号的图片空间上;对于实例化的消费者端小程序,图片上传到小程序owner账号的图片空间上。


四、API调用

1. 授权说明


对B端应用,在千牛上授权时,scope参数传入 *  即可,参考代码:


my.authorize({
  scopes: '*',  
  success: (res) => {
    my.alert({  content: JSON.stringify(res)});  
  }, 
});


对C端应用调用,无需额外授权。


2. 上传接口调用


接口名:cloud.file.uploadFile。

入参说明:

1)filePath(必填): 本地文件路径。 string类型。

2)fileType(必填):文件类型,可选类型为image, video, audio, other。 string类型。

3)fileName:(可选):文件名,自己定义。string类型。

4)seller(可选):是否上传到图片空间。boolean类型,不传默认false当该参数为true时,  fileType只能是image。

5)dirId (可选):商家图片空间目录ID,不传则到根目录。目录id获取,需要调用taobao.picture.category.get 接口。接口返回参数中的picture_category_id即为需求值。

出参说明:fileId ,资源ID ,作为cloud.file.getTempFileURL的入参,用于获取文件临时访问url。


const {cloud} = getApp(); 
Page({
  data:{},
  onLoad(query) {  // 页面加载   },
  testUploadFile(){
    my.chooseImage({
      success: images => {
         let fileId = await cloud.file.uploadFile({
            filePath: images.apFilePaths[0],  
            fileType: 'image',  
            fileName: '/user/avatar.png',  
            seller: true,  
            dirId: '2223'  
         })  
      }  
    })  
  } 
}); 


3. 删除文件


注意:已下线,商家空间资源不允许使用接口删除。

接口名:cloud.file.deleteFile。

入参说明:

1)fileId(必填):从上传文件接口返回参数中获取,string类型,不允许批量操作。

2)seller(可选):是否上传到图片空间。boolean类型,不传默认false。

出参说明:true|false,表示删除结果。

调用示例:


const {cloud} = getApp(); 
Page({
  data:{},
  onLoad(query) {  // 页面加载   },
  testDeleteFile(){
     let ret = await cloud.file.deleteFile({
        fileId: 'cloud://xxxxx' , 
        seller: true  });  
  } 
}); 


4. 获取文件访问URL


接口名:cloud.file.getTempFileURL

入参说明:

1)fileId(必填):从上传文件接口返回参数中获取,string数组,可以批量查询

2)seller(可选):是否上传到图片空间。boolean类型,不传默认false。

出参说明:接口返回对应文件的临时访问链接    

调用示例:


const {cloud} = getApp(); 
Page({  data:{},  
onLoad(query) {  // 页面加载   },  
testGetTempFileURL(){
   let urls = await cloud.file.getTempFileURL({
      fileId: ['cloud://xxx1', 'cloud://xxx2'] ,
      seller: true  
   })  
 } 
});


FAQ

关于此文档暂时还没有FAQ
返回
顶部