文档

另存为

更新时间:

本文为您介绍另存为的概念、注意事项、参数说明和使用示例。

什么是另存为

同步处理默认不保存处理后的文件,您需要在处理请求内添加另存为参数,将处理后的文件作为对象 (Object) 保存到指定的存储空间 (Bucket) 内。异步处理由于是以任务形式对文件进行异步数据处理,请求返回时只会返回任务ID,所以要求您在提交时必须添加另存为参数,将处理完成后的文件作为对象 (Object) 保存到指定的存储空间 (Bucket) 内,以便后续访问。

注意事项

  • 权限要求

    • 进行另存为操作要求具有源Bucket的oss:PostProcessTask权限,以及目标Object的oss:PutObject权限。

    • 另存为文件的读写权限ACL默认继承Bucket,不支持自定义。

  • 地域要求:源文件所在Bucket和处理后另存为的目标Bucket可以相同也可以不同,但必须属于同一阿里云账号下的相同地域。

  • 另存为方式:不支持将文件URL处理后的文件直接转存至指定Bucket。您可以将处理后的文件保存到本地,然后再上传至指定Bucket。

  • 另存为文件存储时长:如果您需要调整另存为文件的存储时长,请结合生命周期规则介绍配置合理的文件过期策略。

参数说明

使用sys/saveas参数时,您需要携带以下选项:

选项

含义

o

目标Object名称,名称需经过URL安全的Base64编码。具体操作,请参见水印编码

说明

o支持变量,变量引用格式为{varname}或字符串与{varname}的组合形式。更多信息,请参见变量

b

目标Bucket名称,名称需经过URL安全的Base64编码。如果不指定目标Bucket,则默认保存至原文件所在Bucket。

说明

b支持变量,变量引用格式为{varname}或字符串与{varname}的组合形式。更多信息,请参见变量

使用阿里云SDK

您可以通过添加另存为参数(sys/saveas)的方式将阿里云SDK处理后的文件保存至指定Bucket。以下仅列举常见SDK的图片处理另存为的代码示例。关于其他SDK的代码示例,请参见简介

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.utils.BinaryUtil;
import com.aliyun.oss.common.utils.IOUtils;
import com.aliyun.oss.model.GenericResult;
import com.aliyun.oss.model.ProcessObjectRequest;
import java.util.Formatter;

public class Demo {
    public static void main(String[] args) throws Throwable {
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 强烈建议不要把访问凭证保存到工程代码里,否则可能导致访问凭证泄露,威胁您账号下所有资源的安全。本代码示例以从环境变量中获取访问凭证为例。运行本代码示例之前,请先配置环境变量。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // 填写Bucket名称,例如examplebucket。
        String bucketName = "examplebucket";
        // 填写Object完整路径。Object完整路径中不能包含Bucket名称。
        String sourceImage = "exampleimage.png";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);

        try {
            // 将图片缩放为固定宽高100 px。
            StringBuilder sbStyle = new StringBuilder();
            Formatter styleFormatter = new Formatter(sbStyle);
            String styleType = "image/resize,m_fixed,w_100,h_100";
            // 将处理后的图片命名称为example-resize.png并保存到当前Bucket。
            // 填写Object完整路径。Object完整路径中不能包含Bucket名称。
            String targetImage = "example-resize.png";
            styleFormatter.format("%s|sys/saveas,o_%s,b_%s", styleType,
                    BinaryUtil.toBase64String(targetImage.getBytes()),
                    BinaryUtil.toBase64String(bucketName.getBytes()));
            System.out.println(sbStyle.toString());
            ProcessObjectRequest request = new ProcessObjectRequest(bucketName, sourceImage, sbStyle.toString());
            GenericResult processResult = ossClient.processObject(request);
            String json = IOUtils.readStreamAsString(processResult.getResponse().getContent(), "UTF-8");
            processResult.getResponse().getContent().close();
            System.out.println(json);
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}
<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}

use OSS\OssClient;

// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
$accessKeyId = getenv("OSS_ACCESS_KEY_ID");
$accessKeySecret = getenv("OSS_ACCESS_KEY_SECRET");
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
$endpoint = "yourEndpoint";
// 填写Bucket名称,例如examplebucket。
$bucket= "examplebucket";
// 填写源Object完整路径,例如exampledir/exampleobject.jpg。Object完整路径中不能包含Bucket名称。
$object = "exampledir/exampleobject.jpg";
// 填写目标Object完整路径,例如example-new.jpg。
$save_object = "example-new.jpg";

function base64url_encode($data)
{
    return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}

$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false);
// 如果目标图片不在指定Bucket中,需上传图片到目标Bucket。
// $ossClient->uploadFile($bucket, $object, "D:\\localpath\\exampleobject.jpg");

// 将图片缩放为固定宽高100 px后,再旋转90°。
$style = "image/resize,m_fixed,w_100,h_100/rotate,90";

$process = $style.
           '|sys/saveas'.
           ',o_'.base64url_encode($save_object).
           ',b_'.base64url_encode($bucket);

// 将处理后的图片命名称为example-new.png并保存到当前Bucket。
$result = $ossClient->processObject($bucket, $object, $process);
// 打印处理结果。
print($result);
const OSS = require('ali-oss');

const client = new OSS({
  // yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
  region: 'yourregion',
  // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  // 填写存储空间名称。
  bucket: 'yourbucketname'
});

const sourceImage = 'sourceObject.png';
const targetImage = 'targetObject.jpg';
async function processImage(processStr, targetBucket) {
  const result = await client.processObjectSave(
    sourceImage,
    targetImage,
    processStr,
    targetBucket
  );
  console.log(result.res.status);
}

// 图片处理持久化缩放。
processImage("image/resize,m_fixed,w_100,h_100")

// 图片处理持久化:裁剪。
processImage("image/crop,w_100,h_100,x_100,y_100,r_1")

// 图片处理持久化:旋转。
processImage("image/rotate,90")

// 图片处理持久化:锐化。
processImage("image/sharpen,100")

// 图片处理持久化:水印。
processImage("image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ")

// 图片处理持久化:格式转换。
processImage("image/format,jpg")

// 图片处理持久化:格式转换,并设置保存图片处理持久化结果的目标Bucket。
processImage("image/format,jpg", "target bucket")
# -*- coding: utf-8 -*-
import os
import base64
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# 填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# 指定原图所在的Bucket名称。
source_bucket_name = 'srcbucket'
# 指定用于存放处理后图片的Bucket名称,该Bucket需与原图所在Bucket在同一地域。
taget_bucket_name = 'destbucket'
# 指定原图名称。如果图片不在Bucket根目录,需携带文件完整访问路径,例如example/example.jpg。
source_image_name = 'example/example.jpg'

# 指定Bucket实例,所有文件相关的方法都需要通过Bucket实例来调用。
bucket = oss2.Bucket(auth, endpoint, source_bucket_name)

# 将图片缩放为固定宽高100 px。
style = 'image/resize,m_fixed,w_100,h_100'
# 指定处理后图片名称。如果图片不在Bucket根目录,需携带文件完整访问路径,例如exampledir/example.jpg。
target_image_name = 'exampledir/example.jpg'
process = "{0}|sys/saveas,o_{1},b_{2}".format(style, 
    oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(target_image_name))),
    oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(taget_bucket_name))))
result = bucket.process_object(source_image_name, process)
print(result)
package main

    import (
        "fmt"
        "os"
        "github.com/aliyun/aliyun-oss-go-sdk/oss"
    )

func main() {
    /// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // 创建OSSClient实例。
    // yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
    client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }   

    // 指定原图所在Bucket的名称,例如srcbucket。
    bucketName := "srcbucket"
    bucket, err := client.Bucket(bucketName)
    if err != nil {
     HandleError(err)
    }
    // 指定原图名称。如果图片不在Bucket根目录,需携带文件完整路径,例如example/example.jpg。
    sourceImageName := "example/example.jpg"
    // 指定用于存放处理后图片的Bucket名称,该Bucket需与原图所在Bucket在同一地域。
    targetBucketName := "destbucket"
    // 指定处理后图片名称。如果图片不在Bucket根目录,需携带文件完整访问路径,例如exampledir/example.jpg。
    targetImageName = "exampledir/example.jpg"
    // 将图片缩放为固定宽高100 px后转存到指定存储空间。
    style = "image/resize,m_fixed,w_100,h_100"
    process = fmt.Sprintf("%s|sys/saveas,o_%v,b_%v", style, base64.URLEncoding.EncodeToString([]byte(targetImageName)), base64.URLEncoding.EncodeToString([]byte(targetBucketName)))
    result, err = bucket.ProcessObject(sourceImageName, process)
    if err != nil {
    HandleError(err)
    } else {
        fmt.Println(result)
    }
}                      
#include <alibabacloud/oss/OssClient.h>
#include <sstream>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* 初始化OSS账号信息。*/
            
    /* 指定Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。*/
    std::string Endpoint = "yourEndpoint";
    /* 指定Bucket名称,例如examplebucket。*/
    std::string BucketName = "examplebucket";
    /* 指定原图名称。如果图片不在Bucket根目录,需携带文件完整路径,例如example/example.jpg。*/
    std::string SourceObjectName = "example/example.jpg";
    /* 指定处理后图片名称。如果图片不在Bucket根目录,需携带文件完整访问路径,例如exampledir/example.jpg。*/
    std::string TargetObjectName = "exampledir/example.jpg";

    /* 初始化网络等资源。*/
    InitializeSdk();

    ClientConfiguration conf;
    /* 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。*/
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);

    /* 将图片缩放为固定宽高100 px后转存到当前Bucket。*/
    std::string Process = "image/resize,m_fixed,w_100,h_100";
    std::stringstream ss;
    ss  << Process 
    <<"|sys/saveas"
    << ",o_" << Base64EncodeUrlSafe(TargetObjectName)
    << ",b_" << Base64EncodeUrlSafe(BucketName);
    ProcessObjectRequest request(BucketName, SourceObjectName, ss.str());
    auto outcome = client.ProcessObject(request);

    /* 释放网络等资源。*/
    ShutdownSdk();
    return 0;
}

使用REST API

如果对程序自定义要求较高,您可以直接发起REST API请求。直接发起REST API请求需要手动编写代码计算签名。

您可以在调用PostObject接口处理服务时,通过Body的方式传递x-oss-process,然后在处理请求中增加sys/saveas参数将处理后的文件保存至指定Bucket。更多信息,请参见PostObject

如下列举各种文件另存为场景的请求示例。

使用处理参数处理图片并转存至指定Bucket

POST /ObjectName?x-oss-process HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 247
Date: Fri, 04 May 2012 03:21:12 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:KU5h8YMUC78M30dXqf3JxrT****=

// 将目标图片test.jpg等比缩放为宽100 px后,保存到名称为test的Bucket中。
x-oss-process=image/resize,w_100|sys/saveas,o_dGVzdC5qcGc,b_dGVzdA

使用样式参数处理图片并转存至指定Bucket

POST /ObjectName?x-oss-process HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 247
Date: Fri, 04 May 2012 03:22:13 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:KU5h8YMUC78M30dXqf3JxrT****=

// 使用名称为examplestyle的样式处理目标图片test.jpg后,保存到名称为test的Bucket中。
x-oss-process=style/examplestyle|sys/saveas,o_dGVzdC5qcGc,b_dGVzdA

使用处理参数处理文档转换并转存至指定Bucket

转换信息

  • 转换前

    • 文件类型:DOCX

    • 文件名称:example.docx

  • 转换后

    • 文件类型:PNG

    • 文件存储路径:oss://test-bucket/doc_images/

请求示例

POST /exmaple.docx?x-oss-async-process HTTP/1.1
Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****

// 将类型为DOCX的文件example.docx转换为PNG格式的图片文件,并且将转换完成的图片存储到oss://test-bucket/doc_images/路径中。
x-oss-async-process=doc/convert,target_png,source_docx|sys/saveas,b_dGVzdC1idWNrZXQ,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw

使用样式参数处理文档转换并转存至指定Bucket

转换信息

  • 转换前

    • 文件类型:DOCX

    • 文件名称:example.docx

  • 转换后

    文件存储路径:oss://test-bucket/doc_images/

请求示例

POST /exmaple.docx?x-oss-async-process HTTP/1.1
Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
 // 使用名称为examplestyle的样式将文件example.docx进行转换,并且将转换完成的文件存储到oss://test-bucket/doc_images/路径中。
x-oss-async-process=style/examplestyle|sys/saveas,b_dGVzdC1idWNrZXQ,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw

使用处理参数处理视频转码并转存至指定Bucket

转码信息

  • 转码前

    • 视频格式:AVI

    • 视频名称:example.avi

  • 转码后

    • 视频信息

      • 视频格式:MP4

      • 视频名称:outobjprefix.mp4

      • 视频流格式:H.265

      • 视频分辨率:1920x1080

      • 视频帧率:30 fps

      • 视频码率:2 Mbps

    • 音频信息

      • 音频流格式:AAC

      • 音频码率:100 Kbps

      • 字幕流:禁用

    • 视频存储路径:oss://outbucket/outobj.mp4

请求示例

POST /exmaple.avi?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****

// 对文件example.avi进行视频转码,转码输出媒体文件容器为MP4,视频流格式为H.265,分辨率为1920x1080,帧率为30 fps,视频码率为2 Mbps;音频流格式为AAC,音频码率为100 Kbps;禁用字幕流;转码完成后将得到的文件保存为oss://outbucket/outobj.mp4。
x-oss-async-process=video/convert,f_mp4,vcodec_h265,s_1920x1080,vb_2000000,fps_30,acodec_aac,ab_100000,sn_1|sys/saveas,o_b3V0b2JqLnthdXRvZXh0fQo,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ

使用样式参数处理视频转码并转存至指定Bucket

转码信息

  • 转码前

    • 视频格式:AVI

    • 视频名称:example.avi

  • 转码后

    • 视频格式:MP4

    • 视频名称:outobjprefix.mp4

    • 视频存储路径:oss://outbucket/outobjprefix.mp4

请求示例

POST /exmaple.avi?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
 // 使用名称为examplestyle的样式将文件example.avi进行视频转码,转码完成后将得到的文件保存为oss://outbucket/outobjprefix.mp4。
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ

使用处理参数处理视频转动图并转存至指定Bucket

截帧信息

  • 转动图前

    • 视频名称:example.mkv

  • 转动图后

    • 动图信息

      • 动图格式:gif

      • 视频间隔:1s

      • 输出图片分辨率:100x100

    • 文件存储路径

      • gif文件:oss://outbucket/outobjprefix.gif

请求示例

POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
// 对文件example.mkv进行视频转动图,动图格式为gif,输出图片宽度为100px,高度为100px,间隔时间为1秒,转换完成后将得到的文件保存为oss://outbucket/outobjprefix.gif。
x-oss-async-process=video/animation,f_gif,w_100,h_100,inter_1000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ

使用样式参数处理视频转动图并转存至指定Bucket

截帧信息

  • 转动图前

    • 视频名称:example.mkv

  • 动图信息

    • 动图格式:gif

  • 转动图后

    • 文件存储路径

      • gif文件:oss://outbucket/outobjprefix.gif

请求示例

POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
// 使用名称为examplestyle的样式对文件example.mkv进行视频转动图,转换完成后将得到的文件保存为oss://outbucket/outobjprefix.gif。
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ

使用处理参数处理视频截雪碧图并转存至指定Bucket

截帧信息

  • 截雪碧图前

    • 视频名称:example.mkv

  • 截雪碧图后

    • 雪碧图信息

      • 雪碧图格式:jpg

      • 抽帧间隔:10s

      • 子图分辨率:100x100

      • 雪碧图配置:每行10张,每列10张,pad、margin均为0

    • 文件存储路径

      • jpg文件:oss://outbucket/outobjprefix-%d.jpg

请求示例

POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
// 对文件example.mkv进行视频截雪碧图。
x-oss-async-process=video/sprite,f_jpg,sw_100,sh_100,inter_10000,tw_10,th_10,pad_0,margin_0|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9Cg

使用样式参数处理视频截雪碧图并转存至指定Bucket

截帧信息

  • 截雪碧图前

    • 视频名称:example.mkv

  • 截雪碧图后

    • 雪碧图信息

      • 雪碧图格式:jpg

    • 文件存储路径

      • jpg文件:oss://outbucket/outobjprefix-%d.jpg

请求示例

POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
// 使用名称为examplestyle的样式对文件example.mkv进行视频截雪碧图。
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9Cg

使用处理参数处理视频截帧并转存至指定Bucket

截帧信息

  • 截帧前

    • 视频名称:example.mkv

  • 截帧后

    • 截帧信息

      • 截帧格式:jpg

      • 视频间隔:10s

      • 输出图片分辨率:100x100

    • 文件存储路径

      • jpg文件:oss://outbucket/outobjprefix-%d.jpg

请求示例

POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
// 对文件example.mkv进行视频截帧。
x-oss-async-process=video/snapshots,f_jpg,w_100,h_100,scaletype_crop,inter_10000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9Cg

使用样式参数处理视频截帧并转存至指定Bucket

截帧信息

  • 截帧前

    • 视频名称:example.mkv

  • 截帧后

    • 截帧信息

      • 截帧格式:jpg

    • 文件存储路径

      • jpg文件:oss://outbucket/outobjprefix-%d.jpg

请求示例

POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
// 使用名称为examplestyle的样式对文件example.mkv进行视频截帧。
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9Cg

使用处理参数处理视频拼接并转存至指定Bucket

拼接信息

  • 拼接前

    • 视频名称:pre.mov、example.mkv、sur.mov

  • 处理方式

    • 拼接时长与顺序:

      视频名称

      顺序

      时长

      pre.mov

      1

      整段视频

      example.mkv

      2

      第10秒到结尾

      sur.mov

      3

      开头到第10秒

  • 拼接后

    • 视频信息

      • 视频格式:h264

      • 视频帧率:25fps

      • 视频码率:1 Mbps

    • 音频信息

      • 音频格式:aac

      • 音频配置:48kHz采样率,双声道

      • 音频码率:96 Kbps

    • 文件存储路径

      • mp4文件:oss://outbucket/outobjprefix.mp4

请求示例

POST /exmaple.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
// 对文件example.mkv进行视频拼接。
x-oss-async-process=video/concat,ss_10000,f_mp4,vcodec_h264,fps_25,vb_1000000,acodec_aac,ab_96000,ar_48000,ac_2,align_1/pre,o_cHJlLm1vdgo/sur,o_c3VyLm1vdg,t_10000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ

使用处理参数处理音频转码并转存至指定Bucket

转码信息

  • 转码前

    • 音频格式:mp3

    • 音频名称:example.mp3

  • 处理方式

    • 转码时长:从输入媒体文件的第1000毫秒开始并持续60000毫秒进行音频转码

  • 转码后

    • 音频信息

      • 音频格式:aac

      • 音频配置:保持原有采样率与声道数

      • 音频码率:96 Kbps

    • 文件存储路径

      • aac文件:oss://outbucket/outobjprefix.aac

请求示例

POST /exmaple.mp3?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
// 对文件example.mp3进行音频转码。
x-oss-async-process=audio/convert,ss_10000,t_60000,f_aac,ab_96000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ

使用样式参数处理音频转码并转存至指定Bucket

转码信息

  • 转码前

    • 音频格式:mp3

    • 音频名称:example.mp3

  • 转码后

    • 音频信息

      • 音频格式:aac

    • 文件存储路径

      • aac文件:oss://outbucket/outobjprefix.aac

请求示例

POST /exmaple.mp3?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
// 使用名称为examplestyle的样式对文件example.mp3进行音频转码。
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ

使用处理参数处理音频拼接并转存至指定Bucket

拼接信息

  • 拼接前

    • 音频名称:pre1.mp3、pre2.wav、example.mp3、sur1.aac、sur2.wma

  • 处理方式

    • 拼接时长与顺序:

      音频名称

      顺序

      时长

      pre1.mp3

      1

      整段音频

      pre2.wav

      2

      前2秒

      example.mp3

      3

      整段音频

      sur1.aac

      4

      第4秒到第10秒

      sur2.wma

      5

      第10秒到结尾

  • 拼接后

    • 音频信息

      • 音频格式:aac

      • 音频配置:48kHz采样率,单声道

      • 音频码率:96 Kbps

    • 文件存储路径

      • aac文件:oss://outbucket/outobjprefix.aac

请求示例

POST /exmaple.mp3?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
// 对文件example.mp3进行音频拼接。
x-oss-async-process=audio/concat,f_aac,ab_96000,ar_48000,ac_1,align_2/pre,o_cHJlMS5tcDMK/pre,o_cHJlMi53YXYK,t_2000/sur,o_c3VyMS5hYWMK,ss_4000,t_10000/sur,o_c3VyMi53bWEK,ss_10000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ

  • 本页导读 (1)
文档反馈