使用阿里云视觉智能开放平台服务时,需要传入文件URL,视觉智能平台根据传入的文件URL对文件进行智能处理。本文介绍如何通过本地文件或网络文件链接生成URL。

背景信息

阿里云视觉智能开放平台服务的接口响应时间依赖文件的下载时间,为了保证被检测文件不会下载超时,建议您使用阿里云OSS存储文件。

OSS用户

  1. 登录OSS管理控制台
  2. 创建存储空间
    创建Bucket选择区域时,需要选择与视觉智能开放平台对应服务能力相同的区域,当前视觉智能开放平台各服务支持的区域为华东2(上海)
    说明 如果您的OSS所在地域不是华东2(上海),那么请参见非上海地域OSS用户生成URL。
  3. 上传本地文件到OSS服务。
    具体操作请参见上传文件
  4. 查看文件URL。
    在已上传图片列表中,单击详情查看并复制图片URL。

非上海地域OSS用户

对于非OSS用户,或者您的OSS所属地域不是华东2(上海),推荐您使用SDK生成URL。
说明 以下方式生成的链接有效期为2天,请及时使用。或者在需要使用时再通过该方式生成URL。
  • Java SDK
    请安装如下Java SDK包。
    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>viapi-utils</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-viapiutils</artifactId>
      <version>1.0.0</version>
    </dependency>
    如下为间接依赖,请按需添加。
    #间接依赖,按需添加
    <dependency>
          <groupId>com.aliyun</groupId>
          <artifactId>aliyun-java-sdk-core</artifactId>
          <version>4.4.8</version>
        </dependency>
        <dependency>
          <groupId>com.aliyun.oss</groupId>
          <artifactId>aliyun-sdk-oss</artifactId>
          <version>3.4.2</version>
        </dependency>
    
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-lang3</artifactId>
          <version>3.9</version>
        </dependency>
    具体代码示例如下。
    public static void testUploadFile() throws ClientException, IOException {
            String accessKey = "xxx";
            String accessKeySecret = "xxx";
            //String file = /home/admin/file/1.jpg  或者本地上传
            String file = "https://fuss10.elemecdn.com/5/32/c17416d77817f2507d7fbdf15ef22jpeg.jpeg";
            FileUtils fileUtils = FileUtils.getInstance(accessKey,accessKeySecret);
            String ossurl = fileUtils.upload(file);
            System.out.println(ossurl);
        }

    您也可以参见Java(支持本地上传)生成URL。

  • Python SDK
    请安装如下Python SDK 。
    pip install oss2
    pip install aliyun-python-sdk-viapiutils
    pip install aliyun-python-sdk-core
    pip install viapi-utils
    代码示例如下。
    from viapi.fileutils import FileUtils
    file_utils = FileUtils("your own accessKey","your own accessSecret")
    oss_url = file_utils.get_oss_url("http://xxx.jpeg","jpg",False)
    print(oss_url)
    oss_url = file_utils.get_oss_url("/home/xxx.mp4","mp4",True)
    print(oss_url)
  • Node.js SDK
    推荐使用NPM工具安装依赖包。
    npm install @alicloud/viapi-utils@^1.0.0 --save
    代码示例如下。
    // This file is auto-generated, don't edit it
    import ViapiUtil from '@alicloud/viapi-utils';
    
    
    export default class Client {
    
      static async main(): Promise<void> {
        // 你的 access_key_id
        let accessKeyId: string = "accessKeyId";
        // 你的 access_key_secret
        let accessKeySecret: string = "accessKeySecret";
        // 要上传的文件路径,url 或 filePath
        let fileUrl: string = "https://www.exampleFileUtl.com/file.jepg";
        // 上传成功后,返回上传后的文件地址
        let fileLoadAddress: string = await ViapiUtil.upload(accessKeyId, accessKeySecret, fileUrl);
      }
    
    }
  • PHP SDK
    推荐使用composer工具安装依赖包。
    composer require alibabacloud/viapi-utils
    代码示例如下。
    <?php
    
    // This file is auto-generated, don't edit it. Thanks.
    namespace Alibabacloud\SDK;
    
    use AlibabaCloud\SDK\ViapiUtils\ViapiUtils;
    
    class Client {
    
        /**
         * @return void
         * @throws \Exception
         */
        public static function main(){
            // 你的 access_key_id
            $accessKeyId = "accessKeyId";
            // 你的 access_key_secret
            $accessKeySecret = "accessKeySecret";
            // 要上传的文件路径,url 或 filePath
            $fileUrl = "https://www.exampleFileUtl.com/file.jepg";
            // 上传成功后,返回上传后的文件地址
            $fileLoadAddress = ViapiUtils::upload($accessKeyId, $accessKeySecret, $fileUrl);
        }
    }
  • GO SDK
    推荐使用GO工具安装依赖包。
    go get github.com/alibabacloud-go/viapi-utils/client:v1.0.0
    代码示例如下。
    // This file is auto-generated, don't edit it. Thanks.
    package main
    
    import (
      "fmt"
    
      "github.com/alibabacloud-go/tea/tea"
      viapiutil "github.com/alibabacloud-go/viapi-utils/client"
    )
    
    func main() {
      // 你的 access_key_id
      accessKeyId := tea.String("accessKeyId")
      // 你的 access_key_secret
      accessKeySecret := tea.String("accessKeySecret")
      // 要上传的文件路径,url 或 filePath
      fileUrl := tea.String("https://www.exampleFileUtl.com/file.jepg")
      // 上传成功后,返回上传后的文件地址
      fileLoadAddress, _err := viapiutil.Upload(accessKeyId, accessKeySecret, fileUrl)
      if _err != nil {
        fmt.Println(_err)
      }
      fmt.Println(fileLoadAddress)
    }