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

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

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

說明

無地域?qū)傩源鎯臻g不支持開啟請求者付費模式。

使用場景

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

    配置步驟如下:

    1. 確保共享數(shù)據(jù)集所屬Bucket的讀寫權(quán)限ACL為公共讀。具體操作,請參見設(shè)置Bucket ACL。

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

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

    配置步驟如下:

    1. 確保生產(chǎn)數(shù)據(jù)所屬Bucket的讀寫權(quán)限ACL為私有。具體操作,請參見設(shè)置Bucket ACL。

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

    3. 通過Bucket Policy授權(quán)您的合作伙伴訪問該Bucket內(nèi)指定的生產(chǎn)數(shù)據(jù)。具體操作,請參見基于Bucket Policy實現(xiàn)跨賬號訪問OSS。

    重要

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

請求方式

  • 不允許匿名訪問

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

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

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

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

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

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

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

費用說明

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

費用

計費項

支付者

存儲費用

標(biāo)準(zhǔn)存儲(本地冗余)容量

Bucket擁有者

標(biāo)準(zhǔn)存儲(同城冗余)容量

Bucket擁有者

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

Bucket擁有者

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

Bucket擁有者

歸檔(本地冗余)容量

Bucket擁有者

歸檔(同城冗余)容量

Bucket擁有者

冷歸檔(本地冗余)容量

Bucket擁有者

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

Bucket擁有者

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

Bucket擁有者

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

Bucket擁有者

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

Bucket擁有者

冷歸檔存儲不足規(guī)定時長容量

Bucket擁有者

深度冷歸檔存儲不足規(guī)定時長容量

Bucket擁有者

無地域?qū)傩源鎯θ萘?/p>

Bucket擁有者

流量費用

外網(wǎng)流出流量

請求者

外網(wǎng)流入流量

免費

內(nèi)網(wǎng)流出流量

免費

內(nèi)網(wǎng)流入流量

免費

CDN回源流出流量

請求者

跨區(qū)域復(fù)制流量

Bucket擁有者

請求費用

Put類型請求次數(shù)

請求者

Get類型請求次數(shù)

請求者

取回請求

Bucket擁有者

數(shù)據(jù)處理

圖片處理

請求者

圖片高級壓縮

Bucket擁有者

視頻截幀

請求者

Select掃描數(shù)據(jù)量

Bucket擁有者

低頻訪問數(shù)據(jù)取回容量

請求者

歸檔存儲數(shù)據(jù)取回容量

請求者

歸檔直讀數(shù)據(jù)取回容量

Bucket擁有者

冷歸檔存儲數(shù)據(jù)取回容量

Bucket擁有者

深度冷歸檔存儲數(shù)據(jù)取回容量

Bucket擁有者

對象標(biāo)簽費用

對象標(biāo)簽

Bucket擁有者

傳輸加速費用

傳輸加速AccM2MIn

Bucket擁有者

傳輸加速AccM2MOut

Bucket擁有者

傳輸加速AccM2OIn

Bucket擁有者

傳輸加速AccM2OOut

Bucket擁有者

傳輸加速AccO2MIn

Bucket擁有者

傳輸加速AccO2MOut

Bucket擁有者

傳輸加速AccO2OIn

Bucket擁有者

傳輸加速AccO2OOut

Bucket擁有者

臨時存儲費用

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

Bucket擁有者

DDoS防護費用

高防資源預(yù)留費用

Bucket擁有者

高防資源提前釋放費用

Bucket擁有者

高防流量防護費用

Bucket擁有者

高防請求防護費用

Bucket擁有者

數(shù)據(jù)索引費用

Meta管理費

公測階段,免費

Bucket查詢費

公測階段,免費

敏感數(shù)據(jù)保護費用

敏感數(shù)據(jù)保護掃描容量

Bucket擁有者

OSS加速器費用

OSS加速器容量

Bucket擁有者

OSS-HDFS元數(shù)據(jù)管理費用

元數(shù)據(jù)管理

Bucket擁有者

跨區(qū)域復(fù)制RTC費用

跨區(qū)域復(fù)制RTC

Bucket擁有者

說明

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

操作步驟

使用OSS控制臺

  1. 登錄OSS管理控制臺。

  2. 單擊Bucket 列表,然后單擊目標(biāo)Bucket名稱。

  3. 在左側(cè)導(dǎo)航欄,選擇Bucket 配置 > 請求者付費

  4. 請求者付費頁面,打開請求者付費開關(guān)。

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

    說明

    如果您需要關(guān)閉請求者付費,您可以關(guān)閉請求者付費開關(guān),然后單擊確定。

使用阿里云SDK

以下僅列舉常見SDK的設(shè)置請求者付費模式的代碼示例。關(guān)于其他SDK的設(shè)置請求者付費模式的代碼示例,請參見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";
        // 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // 填寫B(tài)ucket名稱,例如examplebucket。
        String bucketName = "examplebucket";

        // 創(chuàng)建OSSClient實例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
        try {
            // 設(shè)置請求者付費模式。
            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 {
            // 關(guān)閉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;

// 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
$provider = new EnvironmentVariableCredentialsProvider();
// Endpoint以杭州為例,其它Region請按實際情況填寫。
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 填寫B(tài)ucket名稱,例如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填寫B(tài)ucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
  region: 'yourregion',
  // 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量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填寫需要設(shè)置請求者付費模式的存儲空間名稱。
    // Payer取值為Requester或BucketOwner。
    // Payer設(shè)置為Requester,表明該存儲空間已開啟請求者付費模式,由請求者支付讀取存儲空間(Bucket)內(nèi)數(shù)據(jù)時產(chǎn)生的流量費用和請求費用。
    // Payer設(shè)置為BucketOwner,表明該存儲空間不開啟請求者付費模式(默認(rèn)狀態(tài)),即請求產(chǎn)生的費用由數(shù)據(jù)擁有者(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

# 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
# 填寫B(tài)ucket名稱,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

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

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

// yourEndpoint填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
var endpoint = "yourEndpoint";
// 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// 填寫B(tài)ucket名稱。
var bucketName = "examplebucket";

// 創(chuàng)建OSSClient實例。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
    // 設(shè)置請求者付費模式。
    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() {
	// 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// 創(chuàng)建OSSClient實例。
	// yourEndpoint填寫B(tài)ucket對應(yīng)的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",
	}

	// 設(shè)置請求者付費模式。
	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填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。*/
    std::string Endpoint = "yourEndpoint";
    /*填寫B(tài)ucket名稱,例如examplebucket。*/
    std::string BucketName = "examplebucket";

    /*初始化網(wǎng)絡(luò)等資源。*/
    InitializeSdk();

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

    /*設(shè)置請求者付費模式。*/
    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;
    }

    /*釋放網(wǎng)絡(luò)等資源。*/
    ShutdownSdk();
    return 0;
}

使用命令行工具ossutil

關(guān)于使用ossutil設(shè)置請求者付費模式的具體操作, 請參見設(shè)置請求者付費模式。

使用REST API

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