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

簡單下載指的是使用OSS API的GetObject接口,下載已上傳的文件(Object),適用于一次HTTP請求交互即可完成下載的場景。

前提條件

  • 已上傳文件到OSS。具體操作,請參見上傳文件

  • 如果要下載歸檔存儲類型的Object,請確保該Object已進(jìn)入解凍狀態(tài)或Bucket已開啟歸檔直讀。具體操作,請參見解凍Object歸檔直讀

  • 如果要下載冷歸檔存儲或者深度冷歸檔存儲類型的Object,請確保該Object已進(jìn)入解凍狀態(tài)。具體操作,請參見解凍Object

  • 已具有oss:GetObject權(quán)限。具體操作,請參見RAM Policy常見示例

操作步驟

使用OSS控制臺

說明

不支持通過OSS控制臺下載文件夾(包含子目錄)。如果需要下載文件夾(包含子目錄),您可以使用ossbrowser、ossutil、SDK、API等方式進(jìn)行下載。

  1. 登錄OSS管理控制臺

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

  3. 在左側(cè)導(dǎo)航欄,選擇文件管理>文件列表

  4. 下載文件。

    • 下載單個文件

      方式一:選擇目標(biāo)文件右側(cè)的more > 下載

      說明

      如果您已將該操作項(xiàng)從默認(rèn)的收藏進(jìn)更多移到文件常見操作,則無需展開more圖標(biāo)即可直接查看到該操作項(xiàng)。

      方式二:單擊目標(biāo)文件的文件名或其右側(cè)的詳情,在彈出的詳情面板中單擊下載

    • 下載多個文件

      選中多個文件,然后單擊下方的下載。通過OSS控制臺可一次批量下載最多100個文件。

使用圖形化管理工具ossbrowser

ossbrowser支持Object級別的操作與控制臺支持的操作類似,請按照ossbrowser界面指引完成簡單下載的操作。關(guān)于如何使用ossbrowser,請參見快速使用ossbrowser

使用阿里云SDK

以下僅列舉常見SDK的簡單下載的代碼示例。關(guān)于其他SDK的簡單下載的代碼示例,請參見SDK簡介

package com.aliyun.oss.demo;

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.GetObjectRequest;
import java.io.File;

public class Demo {

    public static void main(String[] args) throws Exception {
        // Endpoint以華東1(杭州)為例,其它Region請按實(shí)際情況填寫。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        //從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // 填寫B(tài)ucket名稱,例如examplebucket。
        String bucketName = "examplebucket";
        // 填寫不包含Bucket名稱在內(nèi)的Object完整路徑,例如testfolder/exampleobject.txt。
        String objectName = "testfolder/exampleobject.txt";
        // 填寫Object下載到本地的完整路徑。
        String pathName = "D:\\localpath\\examplefile.txt";

        // 創(chuàng)建OSSClient實(shí)例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);

        try {
            // 下載Object到本地文件,并保存到指定的本地路徑中。如果指定的本地文件存在會覆蓋,不存在則新建。
            // 如果未指定本地路徑,則下載后的文件默認(rèn)保存到示例程序所屬項(xiàng)目對應(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();
            }
        }
    }
}   
<?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;

// 從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
$provider = new EnvironmentVariableCredentialsProvider();
// 填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 填寫B(tài)ucket名稱,例如examplebucket。
$bucket= "examplebucket";
// 填寫不包含Bucket名稱在內(nèi)的Object完整路徑,例如testfolder/exampleobject.txt。
$object = "testfolder/exampleobject.txt";
// 下載Object到本地文件examplefile.txt,并保存到指定的本地路徑中(D:\\localpath)。如果指定的本地文件存在會覆蓋,不存在則新建。
// 如果未指定本地路徑,則下載后的文件默認(rèn)保存到示例程序所屬項(xiàng)目對應(yīng)本地路徑中。
$localfile = "D:\\localpath\\examplefile.txt";
$options = array(
        OssClient::OSS_FILE_DOWNLOAD => $localfile
    );

// 使用try catch捕獲異常。如果捕獲到異常,則說明下載失敗;如果沒有捕獲到異常,則說明下載成功。
try{
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
    );
    $ossClient = new OssClient($config);

    $ossClient->getObject($bucket, $object, $options);
} catch(OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK, please check localfile: 'examplefile.txt'" . "\n");
        
const OSS = require('ali-oss');

const client = new OSS({
  // yourregion填寫B(tài)ucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
  region: 'yourRegion',
  // 從環(huán)境變量中獲取訪問憑證。運(yù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,
  // 填寫B(tài)ucket名稱。
  bucket: 'examplebucket'
});

async function get () {
  try {
    // 填寫Object完整路徑和本地文件的完整路徑。Object完整路徑中不能包含Bucket名稱。
    // 如果指定的本地文件存在會覆蓋,不存在則新建。
    // 如果未指定本地路徑,則下載后的文件默認(rèn)保存到示例程序所屬項(xiàng)目對應(yīng)本地路徑中。
    const result = await client.get('exampleobject.txt', 'D:\\localpath\\examplefile.txt');
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

get(); 
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,風(fēng)險很高。強(qiáng)烈建議您創(chuàng)建并使用RAM賬號進(jìn)行API訪問或日常運(yùn)維,請登錄RAM控制臺創(chuàng)建RAM賬號。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# Endpoint以杭州為例,其它Region請按實(shí)際情況填寫。
# 填寫B(tài)ucket名稱,例如examplebucket。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# 填寫Object完整路徑,完整路徑中不包含Bucket名稱,例如testfolder/exampleobject.txt。
# 下載Object到本地文件,并保存到指定的本地路徑D:\\localpath\\examplefile.txt。如果指定的本地文件存在會覆蓋,不存在則新建。
bucket.get_object_to_file('testfolder/exampleobject.txt', 'D:\\localpath\\examplefile.txt')        
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>

  <body>
    <!--導(dǎo)入SDK文件-->
    <script
      type="text/javascript"
      src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"
    ></script>
    <script type="text/javascript">
      const client = new OSS({
        // yourRegion填寫B(tài)ucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
        region: "yourRegion",
        // 從STS服務(wù)獲取的臨時訪問密鑰(AccessKey ID和AccessKey Secret)。
        accessKeyId: "yourAccessKeyId",
        accessKeySecret: "yourAccessKeySecret",
        // 從STS服務(wù)獲取的安全令牌(SecurityToken)。
        stsToken: "yoursecurityToken",
        // 填寫B(tài)ucket名稱。
        bucket: "examplebucket",
      });

      // 配置響應(yīng)頭實(shí)現(xiàn)通過URL訪問時自動下載文件,并設(shè)置下載后的文件名。
      const filename = "examplefile.txt";
      const response = {
        "content-disposition": `attachment; filename=${encodeURIComponent(
          filename
        )}`,
      };
      // 填寫Object完整路徑。Object完整路徑中不能包含Bucket名稱。
      const url = client.signatureUrl("exampleobject.txt", { response });
      console.log(url);
    </script>
  </body>
</html>
// 構(gòu)造下載文件請求。
// 依次填寫B(tài)ucket名稱(例如examplebucket)和Object完整路徑(例如exampledir/exampleobject.txt)。Object完整路徑中不能包含Bucket名稱。
GetObjectRequest get = new GetObjectRequest("examplebucket", "exampledir/exampleobject.txt");

oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>() {
    @Override
    public void onSuccess(GetObjectRequest request, GetObjectResult result) {
// 開始讀取數(shù)據(jù)。
        long length = result.getContentLength();
        if (length > 0) {
            byte[] buffer = new byte[(int) length];
            int readCount = 0;
            while (readCount < length) {
                try{
                    readCount += result.getObjectContent().read(buffer, readCount, (int) length - readCount);
                }catch (Exception e){
                    OSSLog.logInfo(e.toString());
                }
            }
    // 將下載后的文件存放在指定的本地路徑,例如D:\\localpath\\exampleobject.jpg。
            try {
                FileOutputStream fout = new FileOutputStream("download_filePath");
                fout.write(buffer);
                fout.close();
            } catch (Exception e) {
                OSSLog.logInfo(e.toString());
            }
        }
    }

    @Override
    public void onFailure(GetObjectRequest request, ClientException clientException,
                          ServiceException serviceException)  {

    }
});
package main

import (
	"fmt"
	"os"

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

func main() {
	// 從環(huán)境變量中獲取訪問憑證。運(yù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實(shí)例。
	// yourEndpoint填寫B(tài)ucket對應(yīng)的Endpoint,以華東1(杭州)為例,填寫為https://oss-cn-hangzhou.aliyuncs.com。其它Region請按實(shí)際情況填寫。
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 填寫B(tài)ucket名稱,例如examplebucket。
	bucket, err := client.Bucket("examplebucket")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 下載文件到本地文件,并保存到指定的本地路徑中。如果指定的本地文件存在會覆蓋,不存在則新建。
	// 如果未指定本地路徑,則下載后的文件默認(rèn)保存到示例程序所屬項(xiàng)目對應(yīng)本地路徑中。
	// 依次填寫Object完整路徑(例如exampledir/exampleobject.txt)和本地文件的完整路徑(例如D:\\localpath\\examplefile.txt)。Object完整路徑中不能包含Bucket名稱。
	err = bucket.GetObjectToFile("exampledir/exampleobject.txt", "D:\\localpath\\examplefile.txt")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
}
OSSGetObjectRequest * request = [OSSGetObjectRequest new];

// 填寫B(tài)ucket名稱,例如examplebucket。
request.bucketName = @"examplebucket";
// 填寫文件完整路徑,例如exampledir/exampleobject.txt。Object完整路徑中不能包含Bucket名稱。
request.objectKey = @"exampledir/exampleobject.txt";

// 可選字段。
request.downloadProgress = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
    // 當(dāng)前下載段長度、當(dāng)前已經(jīng)下載總長度、一共需要下載的總長度。
    NSLog(@"%lld, %lld, %lld", bytesWritten, totalBytesWritten, totalBytesExpectedToWrite);
};
// request.range = [[OSSRange alloc] initWithStart:0 withEnd:99]; // bytes=0-99,指定范圍下載。
// request.downloadToFileURL = [NSURL fileURLWithPath:@"<filepath>"]; // 如果需要直接下載到文件,需要指明目標(biāo)文件地址。

OSSTask * getTask = [client getObject:request];

[getTask continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        NSLog(@"download object success!");
        OSSGetObjectResult * getResult = task.result;
        NSLog(@"download result: %@", getResult.downloadedData);
    } else {
        NSLog(@"download object failed, error: %@" ,task.error);
    }
    return nil;
}];

// [getTask waitUntilFinished];

// [request cancel];
#include <alibabacloud/oss/OssClient.h>
#include <memory>
#include <fstream>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* 初始化OSS賬號信息。*/
            
    /* 填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。*/
    std::string Endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    /* 填寫B(tài)ucket名稱,例如examplebucket。*/
    std::string BucketName = "examplebucket";
    /* 填寫Object完整路徑,完整路徑中不能包含Bucket名稱,例如exampledir/exampleobject.txt。*/
    std::string ObjectName = "exampledir/exampleobject.txt";
    /* 下載Object到本地文件examplefile.txt,并保存到指定的本地路徑中(D:\\localpath)。如果指定的本地文件存在會覆蓋,不存在則新建。*/
    /* 如果未指定本地路徑,則下載后的文件默認(rèn)保存到示例程序所屬項(xiàng)目對應(yīng)本地路徑中。*/
    std::string FileNametoSave = "D:\\localpath\\examplefile.txt";

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

    ClientConfiguration conf;
    /* 從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。*/
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    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;
}
#include "oss_api.h"
#include "aos_http_io.h"
/* yourEndpoint填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。*/
const char *endpoint = "yourEndpoint";

/* 填寫B(tài)ucket名稱,例如examplebucket。*/
const char *bucket_name = "examplebucket";
/* 填寫Object完整路徑,完整路徑中不能包含Bucket名稱,例如exampledir/exampleobject.txt。*/
const char *object_name = "exampledir/exampleobject.txt";
/* 填寫本地文件的完整路徑。*/
const char *local_filename = "yourLocalFilename";
void init_options(oss_request_options_t *options)
{
    options->config = oss_config_create(options->pool);
    /* 用char*類型的字符串初始化aos_string_t類型。*/
    aos_str_set(&options->config->endpoint, endpoint);
    /* 從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。*/    
    aos_str_set(&options->config->access_key_id, getenv("OSS_ACCESS_KEY_ID"));
    aos_str_set(&options->config->access_key_secret, getenv("OSS_ACCESS_KEY_SECRET"));
    /* 是否使用了CNAME。0表示不使用。*/
    options->config->is_cname = 0;
    /* 用于設(shè)置網(wǎng)絡(luò)相關(guān)參數(shù),比如超時時間等。*/
    options->ctl = aos_http_controller_create(options->pool, 0);
}
int main(int argc, char *argv[])
{
    /* 在程序入口調(diào)用aos_http_io_initialize方法來初始化網(wǎng)絡(luò)、內(nèi)存等全局資源。*/
    if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
        exit(1);
    }
    /* 用于內(nèi)存管理的內(nèi)存池(pool),等價于apr_pool_t。其實(shí)現(xiàn)代碼在apr庫中。*/
    aos_pool_t *pool;
    /* 重新創(chuàng)建一個內(nèi)存池,第二個參數(shù)是NULL,表示沒有繼承其它內(nèi)存池。*/
    aos_pool_create(&pool, NULL);
    /* 創(chuàng)建并初始化options,該參數(shù)包括endpoint、access_key_id、acces_key_secret、is_cname、curl等全局配置信息。*/
    oss_request_options_t *oss_client_options;
    /* 在內(nèi)存池中分配內(nèi)存給options。*/
    oss_client_options = oss_request_options_create(pool);
    /* 初始化Client的選項(xiàng)oss_client_options。*/
    init_options(oss_client_options);
    /* 初始化參數(shù)。*/
    aos_string_t bucket;
    aos_string_t object;
    aos_string_t file;
    aos_table_t *params;
    aos_table_t *headers = NULL;
    aos_table_t *resp_headers = NULL; 
    aos_status_t *resp_status = NULL; 
    aos_str_set(&bucket, bucket_name);
    aos_str_set(&object, object_name);
    aos_str_set(&file, local_filename);
    params = aos_table_make(pool, 0);
    /* 下載文件。如果指定的本地文件存在會覆蓋,不存在則新建。*/
    resp_status = oss_get_object_to_file(oss_client_options, &bucket, &object, headers, params, &file, &resp_headers);
    if (aos_status_is_ok(resp_status)) {
        printf("Get object from file succeeded\n");
    } else {
        printf("Get object from file failed\n");
    }  
    /* 釋放內(nèi)存池,相當(dāng)于釋放了請求過程中各資源分配的內(nèi)存。*/
    aos_pool_destroy(pool);
    /* 釋放之前分配的全局資源。*/
    aos_http_io_deinitialize();
    return 0;
}
require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # Endpoint以華東1(杭州)為例,其它Region請按實(shí)際情況填寫。
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # 從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# 填寫B(tài)ucket名稱,例如examplebucket。
bucket = client.get_bucket('examplebucket')
# 將Object下載至本地。
bucket.get_object('exampleobject.txt', :file => 'D:\\localpath\\examplefile.txt')

使用命令行工具ossutil

關(guān)于使用ossutil簡單下載的具體操作, 請參見cp(下載文件)

使用REST API

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

相關(guān)文檔

  • 如何在開啟了版本控制的Bucket中下載文件,請參見開啟版本控制下Object的操作

  • 如何在暫停了版本控制的Bucket中下載文件,請參見暫停版本控制下Object的操作

  • 為了防止第三方未經(jīng)授權(quán)從您的Bucket里下載數(shù)據(jù),OSS提供了Bucket和Object級別的訪問權(quán)限控制。更多信息,請參見訪問控制概述

  • 如果您希望在下載大文件過程中,從下載中斷的位置繼續(xù)下載未完成的部分,您可以使用斷點(diǎn)續(xù)傳。具體操作,請參見斷點(diǎn)續(xù)傳下載

  • 如果您希望將私有Bucket的Object提供給第三方進(jìn)行下載,請通過STS臨時訪問憑證或簽名URL的方式授權(quán)第三方下載文件。具體操作,請參見授權(quán)給第三方下載

  • 如果您希望在下載文件時,滿足限定條件則下載,不滿足限定條件則返回錯誤且不會觸發(fā)下載行為,您可以在下載文件時指定限制條件。具體操作,請參見限定條件下載