如何将巨大的字节数组保存到azure表存储中?

dem*_*emo 0 c# arrays azure large-files azure-table-storage

我有tableEntity包含byte[]属性

[StorageTableName("TestTable")]
public class TestTableEntity : TableEntity
{
    public byte[] Data { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在这个属性中我想把一些文件转换成字节(如果它不正确 - 请建议另一个解决方案).

var table = tableStorage.Table<TestTableEntity>();
await table.CreateIfNotExistsAsync();

var entity = new TestTableEntity 
{
    Data = data, //byte[]
    PartitionKey = partitionKey, //date
    RowKey = schemaName// string
};

await table.InsertOrUpdateAsync(entity);
Run Code Online (Sandbox Code Playgroud)

插入的步骤我得到错误

远程服务器返回错误:(413)请求正文太大并超出了允许的最大限制.

因为数组真的很大.

有什么方法可以解决这个问题吗?

Chi*_*ani 5

在Azure表存储中,实体的最大存储容量大约为1 MB(Azure存储可伸缩性和性能目标).

检查数据是否超出指定的限制,在这种情况下,您可能需要将数据存储在Azure Blob中,并在表中添加对它的引用或直接使用它.