使用阿里云视觉智能开放平台服务时,需要传入文件URL,视觉智能平台根据传入的文件URL对文件进行智能处理。本文介绍如何通过本地文件或网络文件链接生成URL。
背景信息
阿里云视觉智能开放平台服务的接口响应时间依赖文件的下载时间,为了保证被检测文件不会下载超时,建议您使用阿里云OSS存储文件。
OSS用户
非上海地域OSS用户(临时文件中转)
对于非OSS用户,或者您的OSS所属地域不是
华东2(上海)
,推荐您使用SDK生成URL。
注意
该方式使用阿里云视觉智能开放平台官方OSS-Bucket作为临时存储,仅为方便用户方便调试接口使用,文件存储有效期为1天。该方式非官方推荐方式,不保证SLA,该方式是所有用户共享总共1万QPS。如果在高峰时段,可能会因为过多用户使用OSS存储,而导致您调用接口失败。所以请勿生产环境使用视觉智能开放平台官方的OSS-Bucket作为存储。此上传接口不推荐付费用户使用。
例如,您购买了某个API 100QPS的使用服务,但如果仍使用免费OSS-Bucket,则仍将与其他用户共享总共1万QPS的OSS并发使用量,可能因OSS并发量受限,而无法使用到100QPS的调用量上限。
- Java SDK
- 方式一(推荐方式):您可以参见Java(支持本地上传)生成URL。
- 方式二:如果您使用的API在该方式一中未支持,请按如下步骤执行。
请安装如下Java SDK包。
<dependency> <groupId>com.aliyun</groupId> <artifactId>viapi-utils</artifactId> <version>1.0.2</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>
具体代码示例如下。import com.aliyun.com.viapi.FileUtils; public class FileUtilUpload { public static void main(String[] args) throws Exception { String accessKey = "xxx"; //您的AccessKeyID String accessKeySecret = "xxx"; //您的AccessKeySecret //String file = /home/admin/file/1.jpg; //或者本地上传 String file = "http://viapi-test.oss-cn-shanghai.aliyuncs.com/viapi-3.0domepic/imagerecog/RecognizeFood/RecognizeFood5.jpg"; FileUtils fileUtils = FileUtils.getInstance(accessKey, accessKeySecret); String ossUrl = fileUtils.upload(file); System.out.println(ossUrl); } }
- 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> { // 您的AccessKeyID let accessKeyId: string = "accessKeyId"; // 您的AccessKeySecret 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(){ // 您的AccessKeyID $accessKeyId = "accessKeyId"; // 您的AccessKeySecret $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() { // 您的AccessKeyID accessKeyId := tea.String("accessKeyId") // 您的AccessKeySecret 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) }
- .NET SDK推荐使用Nuget工具安装依赖包。
dotnet add package AlibabaCloud.SDK.VIAPIUtils
代码示例如下。using System; //dotnet add package AlibabaCloud.SDK.VIAPIUtils using AlibabaCloud.SDK.VIAPI.Utils; namespace viapitest { class Program { static void Main(string[] args) { string accessKeyId="accessKeyId"; // 您的AccessKeyID string accessSecret="accessKeySecret"; // 您的AccessKeySecret string imageUrl="https://www.exampleFileUtl.com/file.jepg"; // 上传成功后,返回上传后的文件地址 FileUtils fileobj=FileUtils.getInstance(accessKeyId,accessSecret); string result=fileobj.Upload(imageUrl); Console.WriteLine(result); } } }