Performing a Streaming Download
If you have any questions during the development, post them on the Issues page of GitHub. For details about parameters and usage of each API, see the API Reference.
The sample code is as follows:
// Initialize configuration parameters.
ObsConfig config = new ObsConfig();
config.Endpoint = "https://your-endpoint";
// Hard-coded or plaintext AK and SK are risky. For security purposes, encrypt your AK and SK before storing them in the configuration file or environment variables. In this example, the AK and SK are stored in environment variables. Before running the code in this example, configure environment variables AccessKeyID and SecretAccessKey.
// Obtain an AK/SK pair on the management console. For details, see https://support.huaweicloud.com/intl/en-us/usermanual-ca/ca_01_0003.html.
string accessKey= Environment.GetEnvironmentVariable("AccessKeyID", EnvironmentVariableTarget.Machine);
string secretKey= Environment.GetEnvironmentVariable("SecretAccessKey", EnvironmentVariableTarget.Machine);
// Create an instance of ObsClient.
ObsClient client = new ObsClient(accessKey, secretKey, config);
// Download an object.
try
{
GetObjectRequest request = new GetObjectRequest()
{
BucketName = "bucketname",
ObjectKey = "objectname",
};
using (GetObjectResponse response = client.GetObject(request))
{
string dest = "savepath";
if (!File.Exists(dest))
{
// Write the data streams into the file.
response.WriteResponseStreamToFile(dest);
}
Console.WriteLine("Get object response: {0}", response.StatusCode);
}
}
catch (ObsException ex)
{
Console.WriteLine("ErrorCode: {0}", ex.ErrorCode);
Console.WriteLine("ErrorMessage: {0}", ex.ErrorMessage);
}
GetObjectResponse.OutputStream (System.IO.Stream type) is the response stream in GetObjectResponse. You can obtain the object content to a local file or memory via GetObjectResponse.OutputStream. Alternatively, you can call GetObjectResponse.WriteResponseStreamToFile provided by OBS .NET SDK to download the object content to a local file.
Object response streams obtained by GetObjectResponse.OutputStream must be closed explicitly using a GetObjectResponse.OutputStream.Close() call. Otherwise, resource leakage may occur.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot