2017-08-15 3 views
0

私はバイトに変換され、いくつかのファイルを入れたい、このプロパティではbyte[]プロパティ晴れのテーブルストレージに巨大なバイト配列を保存するには? ( - 別の解決策を提案してください、それが間違っている場合)

[StorageTableName("TestTable")] 
public class TestTableEntity : TableEntity 
{ 
    public byte[] Data { get; set; } 
} 

が含まれているtableEntityを持っています。インサートのステップ

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); 

私はエラー

The remote server returned an error: (413) The request body is too large and exceeds the maximum permissible limit..

原因配列は本当に巨大で取得します。

これを解決する方法はありますか?

+0

あなたのアップロードをチャンク...可能であればチャンクとしてテーブルに保存してください。それを検索する方が簡単です –

+0

@MichaelCoxon、どのようにこれを行うには?ここのようなものhttps://stackoverflow.com/a/18170921/3917754 – demo

+3

ブロブストレージを代わりに使用してみませんか? –

答えて

5

Azureテーブルストレージでは、エンティティの最大ストレージ容量は約1 MB(Azure Storage Scalability and Performance Targets)です。

データが指定された制限を超えていないか確認してください。その場合は、Azure Blobにデータを格納して、テーブルに参照を追加するか、直接参照を追加する必要があります。

+1

また、[バイト配列の列の最大サイズは64kです](https://docs.microsoft.com/en-us/rest/api/storageservices/understanding-the-table-service-data-model)。 –

関連する問題