Sha*_*ane 12 c# azure azure-storage-blobs
我知道如何保存Streams,但我想获取该流并创建缩略图和其他大小的图像,但我不知道如何将byte []保存到Azure Blob存储.
这就是我现在要做的就是保存Stream:
// Retrieve reference to a blob named "myblob".
CloudBlockBlob _blockBlob = container.GetBlockBlobReference("SampleImage.jpg");
// upload from Stream object during file upload
blockBlob.UploadFromStream(stream);
// But what about pushing a byte[] array? I want to thumbnail and do some image manipulation
Run Code Online (Sandbox Code Playgroud)
Rob*_*rch 23
这曾经是Storage Client库(肯定是1.7版本) - 但他们在2.0版本中删除了它
"所有上传和下载方法现在都是基于流的,FromFile,ByteArray,Text重载已被删除."
围绕字节数组创建只读内存流非常轻量级:
byte[] data = new byte[] { 1, 2, 3 };
using(var stream = new MemoryStream(data, writable: false)) {
blockBlob.UploadFromStream(stream);
}
Run Code Online (Sandbox Code Playgroud)
MSDN文档 - 从我在源代码中可以看出,它回归到3.0版本,并且仍然适用于4.0版本.
更新:
UploadFromByteArray又回来了.
public void UploadFromByteArray (
byte[] buffer,
int index,
int count,
[OptionalAttribute] AccessCondition accessCondition,
[OptionalAttribute] BlobRequestOptions options,
[OptionalAttribute] OperationContext operationContext
)
Run Code Online (Sandbox Code Playgroud)
我对Azure也一无所知,但是使用Streams,你可以按如下方式处理它:
//byte[] data;
using(var ms = new MemoryStream(data, false))
{
blockBlob.UploadFromStream(ms);
}
Run Code Online (Sandbox Code Playgroud)
使用新的 SDK azure.storage.blob
var blobContainerClient = new BlobContainerClient(storageConnectionString, containerName);
BlobClient blob = blobContainerClient.GetBlobClient(blobName);
using(var ms = new MemoryStream(data, false))
{
await blob.UploadAsync(ms);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19466 次 |
| 最近记录: |