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

通過終端節(jié)點私網(wǎng)訪問OSS資源

私網(wǎng)連接(PrivateLink)能夠建立專有網(wǎng)絡(luò)VPC(Virtual Private Cloud)與阿里云上的服務(wù)安全穩(wěn)定的私有連接,簡化網(wǎng)絡(luò)架構(gòu),實現(xiàn)私網(wǎng)訪問服務(wù),避免通過公網(wǎng)訪問服務(wù)帶來的潛在安全風(fēng)險。本文介紹如何通過終端節(jié)點私網(wǎng)訪問OSS資源。

前提條件

  • 使用終端節(jié)點私網(wǎng)訪問OSS資源目前處于邀測階段,需聯(lián)系技術(shù)支持申請使用。

  • 僅華東1(杭州)、華東2(上海)、華北2(北京)、華北6(烏蘭察布)、華南1(深圳)、中國香港、新加坡、印度尼西亞(雅加達)地域支持通過終端節(jié)點私網(wǎng)訪問OSS資源。

  • 已在與終端節(jié)點相同的地域創(chuàng)建專有網(wǎng)絡(luò)VPC和交換機。具體操作,請參見創(chuàng)建專有網(wǎng)絡(luò)和交換機

  • 已在同一個VPC內(nèi)創(chuàng)建ECS實例。具體操作,請參見選購ECS實例。

費用說明

  • PrivateLink開通時不產(chǎn)生費用。開通成功后,根據(jù)實際使用量進行計費,按每小時出賬。費用包含實例費和流量處理費。更多信息,請參見計費說明。

  • PrivateLink的服務(wù)使用方和服務(wù)提供方可以是不同的阿里云賬號,也支持將所產(chǎn)生的費用歸入服務(wù)使用方或者服務(wù)提供方的賬號進行出賬。更多信息,請參見付費方說明。

應(yīng)用場景

OSS服務(wù)共享給云上VPC

如下圖所示,要實現(xiàn)同一地域內(nèi)通過VPC中的終端節(jié)點私網(wǎng)訪問云上部署的OSS資源,您需要將OSS作為服務(wù)資源加入到終端節(jié)點服務(wù)中,然后在VPC中創(chuàng)建連接OSS服務(wù)的終端節(jié)點,實現(xiàn)通過終端節(jié)點私網(wǎng)訪問OSS服務(wù)資源。

image

OSS服務(wù)共享給本地數(shù)據(jù)中心

如下圖所示,要實現(xiàn)在本地數(shù)據(jù)中心私網(wǎng)訪問云上部署的OSS服務(wù)資源,您需要在同一地域內(nèi)將OSS服務(wù)資源加入到終端節(jié)點服務(wù)中,然后在VPC中創(chuàng)建連接OSS服務(wù)的終端節(jié)點,并通過專線、VPN網(wǎng)關(guān)或智能接入網(wǎng)關(guān)將本地數(shù)據(jù)中心與VPC連接起來,實現(xiàn)本地數(shù)據(jù)中心私網(wǎng)訪問OSS服務(wù)資源。

image

操作步驟

  1. 創(chuàng)建終端節(jié)點。

    1. 登錄專有網(wǎng)絡(luò)管理控制臺。
    2. 在左側(cè)導(dǎo)航欄,單擊終端節(jié)點。

    3. 在頂部菜單欄處,選擇任意支持通過終端節(jié)點私網(wǎng)訪問OSS資源的地域。

    4. 終端節(jié)點頁面下的接口終端節(jié)點頁簽,單擊創(chuàng)建終端節(jié)點。

    5. 創(chuàng)建終端節(jié)點頁面,按以下說明配置各項參數(shù),其他參數(shù)保留默認配置。

      參數(shù)

      說明

      節(jié)點名稱

      輸入自定義終端節(jié)點的名稱。

      終端節(jié)點類型

      選擇接口終端節(jié)點,表示服務(wù)使用方通過接口終端節(jié)點訪問服務(wù)提供方提供的服務(wù)。

      終端節(jié)點服務(wù)

      單擊阿里云服務(wù),然后在終端節(jié)點服務(wù)名稱搜索框輸入com.aliyuncs.privatelink.cn-hangzhou.oss,并選中該終端節(jié)點服務(wù)。

      說明

      一個終端節(jié)點僅支持關(guān)聯(lián)一個終端節(jié)點服務(wù)。

      專有網(wǎng)絡(luò)

      選擇需要創(chuàng)建終端節(jié)點的專有網(wǎng)絡(luò)。

      安全組

      選擇要與終端節(jié)點網(wǎng)卡關(guān)聯(lián)的安全組,安全組可以管控到終端節(jié)點網(wǎng)卡的數(shù)據(jù)通信。

      可用區(qū)與交換機

      選擇終端節(jié)點服務(wù)對應(yīng)的可用區(qū),然后選擇該可用區(qū)內(nèi)的交換機。系統(tǒng)會自動在每個交換機下創(chuàng)建一個終端節(jié)點網(wǎng)卡。

    6. 單擊確認創(chuàng)建。

      創(chuàng)建完成后,您需要記錄生成的終端節(jié)點域名,用于后續(xù)訪問OSS服務(wù)。

      Dingtalk_20240325172953.jpg

  2. 使用終端節(jié)點域名訪問OSS。

    1. 連接ECS實例。具體步驟,請參見連接ECS實例

    2. 通過ossutil或者SDK以終端節(jié)點域名的方式訪問OSS。

      ossutil

      1. 在已創(chuàng)建的ECS實例安裝1.7.17及以上版本的ossutil。

        具體步驟,請參見安裝ossutil

      2. 使用終端節(jié)點域名以ossutil的方式訪問OSS。

        以將examplebucket下的文件examplefile.txt下載到本地目錄/tmp/為例。示例中通過-e選項指定終端節(jié)點域名,使用--force-path-style選項指定以Path-Style的方式訪問OSS。

        ossutil cp oss://examplebucket/examplefile.txt /tmp/ -e ep-bp1i317e3d65873e****.oss.cn-hangzhou.privatelink.aliyuncs.com --force-path-style

        ossutil支持使用終端節(jié)點域名進行訪問的操作列表,請參見常用命令。

        返回結(jié)果如下:

        Succeed: Total num: 1, size: 11. OK num: 1(download 1 objects).
        
        average speed 0(byte/s)
        
        0.188959(s) elapsed

      SDK

      僅以下語言SDK支持使用終端節(jié)點域名訪問OSS。以下以使用終端節(jié)點域名將examplebucket下的文件exampleobject.txt下載到本地為例。

      SDK支持使用終端節(jié)點域名進行訪問的操作列表,請參見SDK簡介。

      1. 在已創(chuàng)建的ECS實例搭建Java、Python、Go、C++環(huán)境。

      2. 選擇以下任意語言SDK以終端節(jié)點域名的方式下載OSS資源。

        Java

        import com.aliyun.oss.*;
        import com.aliyun.oss.common.auth.*;
        import com.aliyun.oss.model.GetObjectRequest;
        import java.io.File;
        
        public class Demo {
        
            public static void main(String[] args) throws Exception {
                // Endpoint填寫終端節(jié)點域名。
                String endpoint = "https://ep-bp1i317e3d65873e****.oss.cn-hangzhou.privatelink.aliyuncs.com";
                //從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET。
                EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
                // 填寫Bucket名稱,例如examplebucket。
                String bucketName = "examplebucket";
                // 填寫不包含Bucket名稱在內(nèi)的Object完整路徑,例如exampleobject.txt。
                String objectName = "exampleobject.txt";
                String pathName = "D:\\examplefile.txt";
                 
                ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
                // 開啟二級域名的訪問方式。
                conf.setSLDEnabled(true);
                // 創(chuàng)建OSSClient實例。
                OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider, conf);
                
        
                try {
                    // 下載Object到本地文件,并保存到指定的本地路徑中。如果指定的本地文件存在會覆蓋,不存在則新建。
                    // 如果未指定本地路徑,則下載后的文件默認保存到示例程序所屬項目對應(yīng)本地路徑中。
                    ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(pathName));
                } 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();
                    }
                }
            }
        }

        Python

        # -*- coding: utf-8 -*-
        import oss2
        from oss2.credentials import EnvironmentVariableCredentialsProvider
        
        # 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,風(fēng)險很高。強烈建議您創(chuàng)建并使用RAM賬號進行API訪問或日常運維,請登錄RAM控制臺創(chuàng)建RAM賬號。
        auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
        # Endpoint填寫終端節(jié)點域名。
        # 填寫Bucket名稱,例如examplebucket。
        # is_path_style=True用于開啟二級域名的訪問方式。
        bucket = oss2.Bucket(auth, 'https://ep-bp1i317e3d65873e****.oss.cn-hangzhou.privatelink.aliyuncs.com', 'examplebucket', is_path_style=True)
        
        # 填寫Object完整路徑,完整路徑中不包含Bucket名稱,例如exampleobject.txt。
        # 下載Object到本地文件,并保存到指定的本地路徑D:\\examplefile.txt。如果指定的本地文件存在會覆蓋,不存在則新建。
        bucket.get_object_to_file('exampleobject.txt', 'D:\\examplefile.txt')      

        Go

        package main
        
        import (
        	"fmt"
        	"os"
        
        	"github.com/aliyun/aliyun-oss-go-sdk/oss"
        )
        
        func main() {
        	// 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET。
        	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
        	if err != nil {
        		fmt.Println("Error:", err)
        		os.Exit(-1)
        	}
        	// 創(chuàng)建OSSClient實例。
        	// yourEndpoint填寫終端節(jié)點域名。
        	// oss.ForcePathStyle(true)用于開啟二級域名訪問方式。
        	client, err := oss.New("https://ep-bp1i317e3d65873e****.oss.cn-hangzhou.privatelink.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider),oss.ForcePathStyle(true))
        	if err != nil {
        		fmt.Println("Error:", err)
        		os.Exit(-1)
        	}
        
        	// 填寫Bucket名稱,例如examplebucket。
        	bucket, err := client.Bucket("examplebucket")
        	if err != nil {
        		fmt.Println("Error:", err)
        		os.Exit(-1)
        	}
        
        	// 下載文件到本地文件,并保存到指定的本地路徑中。如果指定的本地文件存在會覆蓋,不存在則新建。
        	// 如果未指定本地路徑,則下載后的文件默認保存到示例程序所屬項目對應(yīng)本地路徑中。
        	// 依次填寫Object完整路徑(例如exampleobject.txt)和本地文件的完整路徑(例如D:\\examplefile.txt)。Object完整路徑中不能包含Bucket名稱。
        	err = bucket.GetObjectToFile("exampleobject.txt", "D:\\examplefile.txt")
        	if err != nil {
        		fmt.Println("Error:", err)
        		os.Exit(-1)
        	}
        }

        C++

        #include <alibabacloud/oss/OssClient.h>
        #include <memory>
        #include <fstream>
        using namespace AlibabaCloud::OSS;
        
        int main(void)
        {
            /* 初始化OSS賬號信息。*/
                    
            /* 填寫終端節(jié)點域名。*/
            std::string Endpoint = "https://ep-bp1i317e3d65873e****.oss.cn-hangzhou.privatelink.aliyuncs.com";
            /* 填寫Bucket名稱,例如examplebucket。*/
            std::string BucketName = "examplebucket";
            /* 填寫Object完整路徑,完整路徑中不能包含Bucket名稱,例如exampleobject.txt。*/
            std::string ObjectName = "exampleobject.txt";
            /* 下載Object到本地文件examplefile.txt,并保存到指定的本地路徑中。如果指定的本地文件存在會覆蓋,不存在則新建。*/
            /* 如果未指定本地路徑,則下載后的文件默認保存到示例程序所屬項目對應(yīng)本地路徑中。*/
            std::string FileNametoSave = "D:\\examplefile.txt";
        
            /* 初始化網(wǎng)絡(luò)等資源。*/
            InitializeSdk();
        
            ClientConfiguration conf;	
            /* 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET。*/    
            auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
            /* conf.isPathStyle = true用于開啟二級域名訪問方式。*/
            conf.isPathStyle = true
            OssClient client(Endpoint, credentialsProvider, conf);
        
            /* 下載Object到本地文件。*/
            GetObjectRequest request(BucketName, ObjectName);
            request.setResponseStreamFactory([=]() {return std::make_shared<std::fstream>(FileNametoSave, std::ios_base::out | std::ios_base::in | std::ios_base::trunc| std::ios_base::binary); });
        
            auto outcome = client.GetObject(request);
        
            if (outcome.isSuccess()) {    
                std::cout << "GetObjectToFile success" << outcome.result().Metadata().ContentLength() << std::endl;
            }
            else {
                /* 異常處理。*/
                std::cout << "GetObjectToFile fail" <<
                ",code:" << outcome.error().Code() <<
                ",message:" << outcome.error().Message() <<
                ",requestId:" << outcome.error().RequestId() << std::endl;
                return -1;
            }
        
            /* 釋放網(wǎng)絡(luò)等資源。*/
            ShutdownSdk();
            return 0;
        }