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

集成協同存儲EOS

協同存儲 EOS 提供了 API,您可以通過編程方式,在您的應用里進行文件上傳、下載等操作。

集成流程

用戶身份

建議您選擇RAM用戶或者RAM角色進行接口調用。更多關于用戶身份介紹請參見身份

授權

調用前,您需要為對應的身份授予權限策略,更多關于授權請參見授權管理

AliyunEnsFullAccess

該系統策略為ENS產品的讀寫策略,具有ENS產品下所有服務的操作權限,請謹慎使用。

AliyunEnsEOSFullAccess

該系統策略為ENS邊緣協同存儲服務的讀寫權限,僅可操作ENS協同存儲服務。

調用方式

協同存儲EOS的大部分接口與OSS兼容,同時EOS接入點和 OSS 稍有不同,使用的是固定域名eos.aliyuncs.com,無需關注地域,同時也無需區分內網或外網(在內網訪問會自動切換到內網鏈路,不產生公網流量費用)。

由于EOS是非Region化的,極少數接口無法完全兼容OSS,通過EOS OpenAPI的形式提供,關于EOS OpenAPI調用方式請參見集成概覽

下表列舉了EOS兼容OSS API的情況,其中

  • 兼容OSS的部分API,可以直接使用OSS SDK進行調用。

  • 不兼容OSS的部分API,可以使用ENS SDK進行調用。

OpenAPI

描述

EOS OpenAPI

兼容OSS API

存儲空間

ListBuckets

返回請求者擁有的所有存儲空間

??

?

PutBucket

創建Bucket

??

?

DeleteBucket

刪除Bucket

??

??

GetBucketInfo

獲取Bucket的信息

??

??

PutBucketLifecycle

設置Bucket中Object的生命周期規則

??

??

GetBucketLifecycle

查看Bucket中Object的生命周期規則

??

??

DeleteBucketLifecycle

刪除Bucket中Object的生命周期規則

??

??

PutBucketAcl

設置Bucket訪問權限

??

??

GetBucketAcl

獲取Bucket訪問權限

??

??

文件對象

DeleteObject

刪除單個文件

??

??

PutObject

上傳Object

?

??

GetObject

獲取(下載)Object

?

??

AppendObject

以追加寫的方式上傳Object

?

??

DeleteMultipleObjects

刪除多個Object

?

??

CopyObject

復制Object(僅支持同一bucket之內的文件拷貝)

?

??

PutObjectTagging

設置或更新對象的標簽信息

?

??

GetObjectTagging

獲取對象的標簽信息

?

??

DeleteObjectTagging

刪除指定對象的標簽信息

?

??

HeadObject

只返回某個Object的meta信息,不返回文件內容

?

??

GetObjectMeta

返回Object的基本meta信息,包括該Object的ETag、Size(文件大小)以及LastModified等,不返回文件內容

?

??

分片上傳

InitiateMultipartUpload

初始化MultipartUpload事件

?

??

UploadPart

分塊上傳文件

?

??

CompleteMultipartUpload

完成整個文件的MultipartUpload上傳

?

??

AbortMultipartUpload

取消MultipartUpload事件

?

??

參考示例

創建存儲空間

EOS的OpenAPI暫時只能通過Common模式進行調用。

package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     * 使用AK&SK初始化賬號Client
     * @param accessKeyId
     * @param accessKeySecret
     * @return Client
     * @throws Exception
     */
    public static com.aliyun.teaopenapi.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 必填,您的 AccessKey ID
                .setAccessKeyId(accessKeyId)
                // 必填,您的 AccessKey Secret
                .setAccessKeySecret(accessKeySecret);
        // Endpoint 請參考 https://api.aliyun.com/product/Ens
        config.endpoint = "ens.aliyuncs.com";
        return new com.aliyun.teaopenapi.Client(config);
    }

    /**
     * API 相關
     * @param path params
     * @return OpenApi.Params
     */
    public static com.aliyun.teaopenapi.models.Params createApiInfo() throws Exception {
        com.aliyun.teaopenapi.models.Params params = new com.aliyun.teaopenapi.models.Params()
                // 接口名稱
                .setAction("PutBucket")
                // 接口版本
                .setVersion("2017-11-10")
                // 接口協議
                .setProtocol("HTTPS")
                // 接口 HTTP 方法
                .setMethod("POST")
                .setAuthType("AK")
                .setStyle("RPC")
                // 接口 PATH
                .setPathname("/")
                // 接口請求體內容格式
                .setReqBodyType("json")
                // 接口響應體內容格式
                .setBodyType("json");
        return params;
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        // 請確保代碼運行環境設置了環境變量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
        // 工程代碼泄露可能會導致 AccessKey 泄露,并威脅賬號下所有資源的安全性。以下代碼示例僅供參考,建議使用更安全的 STS 方式,更多鑒權訪問方式請參見:http://m.bestwisewords.com/document_detail/378657.html
        com.aliyun.teaopenapi.Client client = Sample.createClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        com.aliyun.teaopenapi.models.Params params = Sample.createApiInfo();

        // body params
        java.util.Map<String, Object> body = new java.util.HashMap<>();
        // bucket名稱
        body.put("BucketName", "global-eos-test1");
        // bucket權限類型
        body.put("BucketAcl", "private");
        // runtime options
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        com.aliyun.teaopenapi.models.OpenApiRequest request = new com.aliyun.teaopenapi.models.OpenApiRequest().setBody(body);
        // 復制代碼運行請自行打印 API 的返回值
        // 返回值為 Map 類型,可從 Map 中獲得三類數據:響應體 body、響應頭 headers、HTTP 返回的狀態碼 statusCode。
        java.util.Map<String, ?> resp = client.callApi(params, request, runtime);
        com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(resp));
    }
}

上傳文件

文件對象API完全兼容OSS API,可以直接使用OSS SDK進行調用。

示例代碼

package com.aliyun.sample;
import com.aliyun.oss.ClientException;
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.*;
import com.aliyuncs.ens.model.v20171110.*;

import java.io.ByteArrayInputStream;

public class Demo {

    public static void main(String[] args) throws Exception {
        String endpoint = "http://eos.aliyuncs.com";
        // 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // 初始化 OSS Cilent
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);   

        try {
            // 填寫Bucket名稱。
            String bucketName = "global-eos-test1";
            String objectName = "demoTestObject.txt";
            String content = "this is demo";    // 創建PutObjectRequest對象。
            // 上傳字符串。
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new ByteArrayInputStream(content.getBytes()));
            ossClient.putObject(putObjectRequest);

            // 關閉OSSClient
            ossClient.shutdown();

        } 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: ", e.);
            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();
            }
        }
    }
}

詳情請參見OSS文檔:簡單上傳

下載文件

下載文件請參見OSS文檔:下載文件概述。您也可通過使用生成授權的URL下載文件,詳情請參見:授權訪問