日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

開啟請求者付費模式讓請求者支付流量、請求次數、數據處理費用

通常情況下,存儲空間(Bucket)的擁有者需要支付Bucket產生的所有費用。然而,您可以為Bucket開啟請求者付費模式,使通過身份驗證的請求者支付訪問Bucket內數據時產生的流量、請求次數、數據處理費用,而Bucket的擁有者僅支付存儲等其他費用。當您希望共享數據,但又不希望支付因共享數據產生的額外費用時,您可以開啟請求者付費模式。

說明

無地域屬性存儲空間不支持開啟請求者付費模式。

使用場景

  • 共享大型數據集。例如某研究機構希望所有客戶都能訪問包含郵政編碼目錄、參考數據、地理空間信息或網絡爬取等數據的共享數據集,同時希望下載數據產生的流量費用和請求次數費用需由請求者支付。

    配置步驟如下:

    1. 確保共享數據集所屬Bucket的讀寫權限ACL為公共讀。具體操作,請參見設置Bucket ACL

    2. 為該Bucket開啟請求者付費模式。

  • 將生產數據交付給您的客戶或合作伙伴。例如,某公司需要將生產數據交付給該公司的合作伙伴,下載數據產生的流量費用和請求次數費用需要由合作伙伴支付。

    配置步驟如下:

    1. 確保生產數據所屬Bucket的讀寫權限ACL為私有。具體操作,請參見設置Bucket ACL

    2. 為該Bucket開啟請求者付費模式。

    3. 通過Bucket Policy授權您的合作伙伴訪問該Bucket內指定的生產數據。具體操作,請參見基于Bucket Policy實現跨賬號訪問OSS

    重要

    您需要將Bucket授權給合作伙伴的RAM用戶,而不是將您賬號下RAM用戶的AccessKey提供給合作伙伴進行訪問。原因是當合作伙伴通過您賬號下的RAM用戶訪問時,請求者是您自身,請求費用仍需要您(請求者)來支付。

請求方式

  • 不允許匿名訪問

    如果您在Bucket上啟用了請求者付費模式,則不允許匿名訪問該Bucket。請求方必須提供身份驗證信息,以便OSS能夠識別請求方,從而對請求方而非Bucket擁有者收取請求所產生的費用。

    當請求者是通過扮演阿里云RAM角色來請求數據時,該角色所屬的賬戶將為此請求付費。

  • 請求中需攜帶請求頭x-oss-request-payer

    如果您在Bucket上啟用了請求者付費模式,請求中必須攜帶x-oss-request-payer請求頭,且取值為requester,以表明請求方已了解需要支付請求和數據下載費用。否則,請求方無法通過驗證。

    • 對于POST、GETHEAD請求,需在請求中包含x-oss-request-payer:requester信息。詳情請參見簽名版本4(推薦)

    • 對于簽名URL,需在請求中包含x-oss-request-payer=requester信息。詳情請參見簽名版本4(推薦)

    數據擁有者訪問該Bucket時,可以不攜帶x-oss-request-payer請求頭。當數據擁有者作為請求者訪問該Bucket時,請求產生的費用由數據擁有者(也是請求者)來支付。

費用說明

Bucket開啟請求者付費前,所有費用均由Bucket擁有者支付。Bucket開啟請求者付費模式后,由Bucket擁有者支付的計費項將產生變化。Bucket擁有者以及請求者支付的詳細說明如下:

費用

計費項

支付者

存儲費用

標準存儲(本地冗余)容量

Bucket擁有者

標準存儲(同城冗余)容量

Bucket擁有者

低頻訪問(本地冗余)容量

Bucket擁有者

低頻訪問(同城冗余)容量

Bucket擁有者

歸檔(本地冗余)容量

Bucket擁有者

歸檔(同城冗余)容量

Bucket擁有者

冷歸檔(本地冗余)容量

Bucket擁有者

深度冷歸檔(本地冗余)容量

Bucket擁有者

低頻訪問(本地冗余)不足規定時長容量

Bucket擁有者

歸檔存儲(本地冗余)不足規定時長容量

Bucket擁有者

歸檔存儲(同城冗余)不足規定時長容量

Bucket擁有者

冷歸檔存儲不足規定時長容量

Bucket擁有者

深度冷歸檔存儲不足規定時長容量

Bucket擁有者

無地域屬性存儲容量

Bucket擁有者

流量費用

外網流出流量

請求者

外網流入流量

免費

內網流出流量

免費

內網流入流量

免費

CDN回源流出流量

請求者

跨區域復制流量

Bucket擁有者

請求費用

Put類型請求次數

請求者

Get類型請求次數

請求者

取回請求

Bucket擁有者

數據處理

圖片處理

請求者

圖片高級壓縮

Bucket擁有者

視頻截幀

請求者

Select掃描數據量

Bucket擁有者

低頻訪問數據取回容量

請求者

歸檔存儲數據取回容量

請求者

歸檔直讀數據取回容量

Bucket擁有者

冷歸檔存儲數據取回容量

Bucket擁有者

深度冷歸檔存儲數據取回容量

Bucket擁有者

對象標簽費用

對象標簽

Bucket擁有者

傳輸加速費用

傳輸加速AccM2MIn

Bucket擁有者

傳輸加速AccM2MOut

Bucket擁有者

傳輸加速AccM2OIn

Bucket擁有者

傳輸加速AccM2OOut

Bucket擁有者

傳輸加速AccO2MIn

Bucket擁有者

傳輸加速AccO2MOut

Bucket擁有者

傳輸加速AccO2OIn

Bucket擁有者

傳輸加速AccO2OOut

Bucket擁有者

臨時存儲費用

臨時存儲容量(本地冗余)

Bucket擁有者

DDoS防護費用

高防資源預留費用

Bucket擁有者

高防資源提前釋放費用

Bucket擁有者

高防流量防護費用

Bucket擁有者

高防請求防護費用

Bucket擁有者

數據索引費用

Meta管理費

公測階段,免費

Bucket查詢費

公測階段,免費

敏感數據保護費用

敏感數據保護掃描容量

Bucket擁有者

OSS加速器費用

OSS加速器容量

Bucket擁有者

OSS-HDFS元數據管理費用

元數據管理

Bucket擁有者

跨區域復制RTC費用

跨區域復制RTC

Bucket擁有者

說明

如果請求者未在請求中(GET、HEADPOST)聲明請求者付費的請求頭x-oss-request-payer,則由Bucket擁有者支付Put類和Get類請求次數費用。

操作步驟

使用OSS控制臺

  1. 登錄OSS管理控制臺

  2. 單擊Bucket 列表,然后單擊目標Bucket名稱。

  3. 在左側導航欄,選擇Bucket 配置 > 請求者付費

  4. 請求者付費頁面,打開請求者付費開關。

  5. 在彈出的對話框,單擊確定

    說明

    如果您需要關閉請求者付費,您可以關閉請求者付費開關,然后單擊確定

使用阿里云SDK

以下僅列舉常見SDK的設置請求者付費模式的代碼示例。關于其他SDK的設置請求者付費模式的代碼示例,請參見SDK簡介

import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.*;

public class Demo {
    public static void main(String[] args) throws Exception{
        // Endpoint以華東1(杭州)為例,其它Region請按實際情況填寫。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // 填寫Bucket名稱,例如examplebucket。
        String bucketName = "examplebucket";

        // 創建OSSClient實例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
        try {
            // 設置請求者付費模式。
            Payer payer = Payer.Requester;
            ossClient.setBucketRequestPayment(bucketName, payer);
        } 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 (Throwable 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 {
            // 關閉OSSClient。
            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\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\Core\OssException;

// 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
$provider = new EnvironmentVariableCredentialsProvider();
// Endpoint以杭州為例,其它Region請按實際情況填寫。
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 填寫Bucket名稱,例如examplebucket。
$bucket= "examplebucket";

try {
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
    );
    $ossClient = new OssClient($config);
    $ossClient->putBucketRequestPayment($bucket, "Requester");
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}

print(__FUNCTION__ . ": OK" . "\n");
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
});

async function setBucketRequestPayment(bucket, Payer) {
  try {
    // bucket填寫需要設置請求者付費模式的存儲空間名稱。
    // Payer取值為Requester或BucketOwner。
    // Payer設置為Requester,表明該存儲空間已開啟請求者付費模式,由請求者支付讀取存儲空間(Bucket)內數據時產生的流量費用和請求費用。
    // Payer設置為BucketOwner,表明該存儲空間不開啟請求者付費模式(默認狀態),即請求產生的費用由數據擁有者(BucketOwner)來支付。
    const result = await client.putBucketRequestPayment(bucket, Payer);
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

setBucketRequestPayment('bucketName', 'Requester')
# -*- coding: utf-8 -*-

import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import PAYER_BUCKETOWNER, PAYER_REQUESTER

# 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填寫Bucket所在地域對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
# 填寫Bucket名稱,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# 設置請求者付費模式,默認的付費者為PAYER_BUCKETOWNER。
result = bucket.put_bucket_request_payment(PAYER_REQUESTER)

print("http respon status: ", result.status)
using Aliyun.OSS;
using Aliyun.OSS.Common;

// yourEndpoint填寫Bucket所在地域對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
var endpoint = "yourEndpoint";
// 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// 填寫Bucket名稱。
var bucketName = "examplebucket";

// 創建OSSClient實例。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
    // 設置請求者付費模式。
    var request = new SetBucketRequestPaymentRequest(bucketName, RequestPayer.Requester);
    client.SetBucketRequestPayment(request);
    Console.WriteLine("Set bucket:{0} RequestPayment succeeded ", bucketName);
}
catch (OssException ex)
{
    Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
        ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
    Console.WriteLine("Failed with error info: {0}", ex.Message);
}
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("New Error:", err)
		os.Exit(-1)
	}

	// 初始化請求者付費模式。
	reqPayConf := oss.RequestPaymentConfiguration{
		Payer: "Requester",
	}

	// 設置請求者付費模式。
	err = client.SetBucketRequestPayment("<yourBucketName>", reqPayConf)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
}
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /*初始化OSS賬號信息。*/
    
    /*yourEndpoint填寫Bucket所在地域對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。*/
    std::string Endpoint = "yourEndpoint";
    /*填寫Bucket名稱,例如examplebucket。*/
    std::string BucketName = "examplebucket";

    /*初始化網絡等資源。*/
    InitializeSdk();

    ClientConfiguration conf;
    /* 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。*/
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);

    /*設置請求者付費模式。*/
    SetBucketRequestPaymentRequest request(BucketName);
    request.setRequestPayer(RequestPayer::Requester);

    auto outcome = client.SetBucketRequestPayment(request);

    if (!outcome.isSuccess()) {
        /*異常處理。*/
        std::cout << "SetBucketRequestPayment fail" <<
        ",code:" << outcome.error().Code() <<
        ",message:" << outcome.error().Message() <<
        ",requestId:" << outcome.error().RequestId() << std::endl;
        return -1;
    }

    /*釋放網絡等資源。*/
    ShutdownSdk();
    return 0;
}

使用命令行工具ossutil

關于使用ossutil設置請求者付費模式的具體操作, 請參見設置請求者付費模式

使用REST API

如果您的程序自定義要求較高,您可以直接發起REST API請求。直接發起REST API請求需要手動編寫代碼計算簽名。更多信息,請參見PutBucketRequestPayment