Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:Otomatik yönlendirme

Son Güncelleme:Oct 01, 2026

Object Storage Service (OSS) içinde depolanan görüntülerin otomatik yönlendirme yapılandırmalarına göre hizalanıp hizalanmayacağını belirtmek için auto-orient parametresini kullanabilirsiniz. Bu konu, OSS'de depolanan görüntüleri otomatik olarak yönlendirmek amacıyla kullanılan auto-orient parametresini açıklar ve bir görüntüyü nasıl otomatik yönlendireceğinize ilişkin örnekler sunar.

Parametreler

Eylem: auto-orient

Aşağıdaki tabloda auto-orient parametresinin geçerli değerleri açıklanmaktadır.

Biçim

Açıklama

Geçerli değer

[value]

Görüntünün otomatik olarak yönlendirilip yönlendirilmeyeceğini belirtir.

0 ve 1.

  • 0: Görüntüyü otomatik olarak yönlendirmez. Kaynak görüntünün yönü korunur.

  • 1: Görüntüyü otomatik olarak yönlendirir.

Kullanım notları

  • Kaynak görüntü için yön parametreleri belirtilmemişse auto-orient parametresi etkili olmaz.

  • Yön parametreleri belirtilen görüntüler, çoğu araçla otomatik olarak yönlendirilebilir. Bu nedenle, görüntülediğiniz görüntüler otomatik olarak yönlendirilmiş olabilir.

  • auto-orient kullanılarak işlenen görüntüler yeniden sıkıştırılır; bu durum, işlenmiş görüntüler ile kaynak görüntüler arasında boyut farklarına yol açar.

Yöntemler

Genel okuma veya genel okuma-yazma erişimli görüntüleri otomatik yönlendirme

Genel okuma veya genel okuma-yazma erişimli görüntüleri otomatik olarak yönlendirmek için URL'lerinde auto-orient parametresini belirtebilirsiniz.

Aşağıdaki örneklerde, Çin (Hangzhou) bölgesindeki image-demo paketinde bulunan f.jpg adlı bir görüntü kaynak görüntü olarak kullanılmaktadır. Görüntü aşağıdaki URL'de barındırılmaktadır:

https://image-demo.oss-cn-hangzhou.aliyuncs.com/f.jpg

Tarayıcılar, gömülü meta verilere dayalı olarak bu görüntünün görüntüleme yönünü otomatik olarak düzeltir:

f.jpg

Özel görüntüleri otomatik yönlendirme

Özel görüntüleri otomatik olarak yönlendirmek için OSS SDK'larını ve OSS API'yi kullanabilirsiniz.

OSS SDK'larını kullanma

Aşağıdaki örnek kod, yaygın programlama dilleri için OSS SDK'ları kullanarak özel bir görüntüyü nasıl otomatik olarak yönlendireceğinize ilişkin örnekler sağlar. Diğer programlama dilleri için OSS SDK'larını kullanarak özel bir görüntüyü nasıl otomatik olarak yönlendireceğiniz hakkında daha fazla bilgi için bkz. Overview.

Java

OSS SDK for Java 3.17.4 veya sonraki bir sürüm gereklidir.

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.GetObjectRequest;
import java.io.File;

public class Demo {
    public static void main(String[] args) throws Throwable {
        // In this example, the endpoint of the China (Hangzhou) region is used. Specify your actual endpoint. 
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Specify the region of the bucket in which the private image is stored. Example: cn-hangzhou. 
        String region = "cn-hangzhou";
        // Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Specify the name of the bucket. Example: examplebucket. 
        String bucketName = "examplebucket";
        // Specify the full path of the image that you want to process. Do not include the bucket name in the full path. 
        String objectName = "example.jpg";
        // Specify the full path of the processed image. Example: D:\\dest.jpg. If an image that has the same name already exists in the path, the processed image overwrites the image. Otherwise, the processed image is saved in the path. 
        String pathName = "D:\\dest.jpg";

        // Create an OSSClient instance.
        // Call the shutdown method to release resources when the OSSClient is no longer in use. 
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            // Resize and auto-orient the image. 
            String image = "image/resize,w_100/auto-orient,1";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(image);
            // Set the name of the processed image to dest.jpg and save it to your local computer. 
            // If you specify only the name of the processed image such as dest.jpg without specifying the local path, the processed image is saved to the local path of the project to which the sample program belongs. 
            ossClient.getObject(request, new File("D:\\dest.jpg"));
        } 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

OSS SDK for PHP 2.7.0 veya sonraki bir sürüm gereklidir.

<?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\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;

// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
$provider = new EnvironmentVariableCredentialsProvider();
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. 
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Specify the name of the bucket. Example: examplebucket. 
$bucket= "examplebucket";
// Specify the full path of the image that you want to process. Do not include the bucket name in the full path. 
$object = "example.jpg";
// Specify the full path of the processed image. Example: D:\\dest.jpg. If an image that has the same name already exists in the path, the processed image overwrites the image. Otherwise, the processed image is saved in the path. 
// If you specify only the name of the processed image such as dest.jpg without specifying the local path, the processed image is saved to the local path of the project to which the sample program belongs. 
$download_file = "D:\\dest.jpg";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,        
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        // Specify the ID of the Alibaba Cloud region in which the bucket is located. 
        "region" => "cn-hangzhou"
    );
$ossClient = new OssClient($config);

// Resize and auto-orient the image. 
$image = "image/resize,w_100/auto-orient,1";

$options = array(
    OssClient::OSS_FILE_DOWNLOAD => $download_file,
    OssClient::OSS_PROCESS => $image);

// Save the processed image to your local computer. 
$ossClient->getObject($bucket, $object, $options);                           

Python

OSS SDK for Python 2.18.4 veya sonraki bir sürüm gereklidir.

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. 
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. 
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# Specify the ID of the Alibaba Cloud region in which the bucket is located. 
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)
# Specify the name of the source image. If the image is not stored in the root directory of the bucket, you must include the full path of the image. Example: exampledir/src.gif. 
key = 'example.jpg'
# Specify the name of the processed image. 
new_pic = 'D:\\dest.jpg'

# Resize and auto-orient the image. 
image = 'image/resize,w_100/auto-orient,1'
bucket.get_object_to_file(key, new_pic, process=image)

Go

OSS SDK for Go 3.0.2 veya sonraki bir sürüm gereklidir.

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func HandleError(err error) {
	fmt.Println("Error:", err)
	os.Exit(-1)
}

func main() {
	// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// Create an OSSClient instance. 
	// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. Specify your actual endpoint. 
	client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"))
	if err != nil {
		HandleError(err)
	}

	// Specify the name of the bucket in which the source image is stored. Example: examplebucket. 
	bucketName := "examplebucket"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		HandleError(err)
	}

	// Specify the name of the source image. If the image is not stored in the root directory of the bucket, you must include the full path of the image. Example: exampledir/src.gif. 
	sourceImageName := "example.jpg"
	// Specify the name of the processed image. 
	targetImageName := "D://dest.jpg"
	// Resize and auto-orient the image. 
	image := "image/resize,w_100/auto-orient,1"
	err = bucket.GetObjectToFile(sourceImageName, targetImageName, oss.Process(image))
	if err != nil {
		HandleError(err)
	}
}

RESTful API'yi kullanma

İşletmeniz yüksek düzeyde özelleştirme gerektiriyorsa doğrudan RESTful API'leri çağırabilirsiniz. Bir API'yi doğrudan çağırmak için imza hesaplamasını kodunuza dahil etmeniz gerekir. Daha fazla bilgi için bkz. (Recommended) Include a V4 signature.

Özel bir görüntüyü otomatik olarak yönlendirmek için GetObject işlemine auto-orient parametresini ekleyebilirsiniz.

GET /oss.jpg?x-oss-process=image/resize,w_100/auto-orient,1 HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e