Share via


Arquitetura de armazenamento externo blob

Antes da introdução do externo provedor armazenar (blob) objeto binário grande (EBS Provider), a semântica de armazenamento blob roteadas o binário fluxo de dados associado com um arquivo para o de conteúdo Microsoft SQL Server SharePoint banco de dados, que ele compartilhado com dados estruturados do o site. Sob esse cenário, quando você chamado um Save comando sobre o arquivo SharePoint, um analisador no Save reconhecido o Save Comando Salvar e promovido um parcel de metadados out of transmitir o arquivo. Depois de metadados, along with o blob associado com o arquivo, foi armazenado em de conteúdo de SQL Server banco de dados.

No entanto, após instalar, configurar e habilitar o EBS Provider, a alteração semântica consideravelmente. (Consulte a Figura 1). Agora, instead of o aplicativo da Web, o meio-camada armazenamento acessar pilha rotas fluxos dados blob e usa o provedor EBS para armazenar dados blob no externo armazenar blob e, em seguida, retorna metadados que permite recuperar o blob por demanda. Importante, o modelo de objeto SharePoint é completamente isolados partir semântica do provedor EBS, assim como a existência de um externo armazenar blob. Essa separação garante que os aplicativos existentes e serviços estão totalmente desconhecido para implementações armazenamento. Somente a pilha acessar armazenamento está ciente da existência e a semântica de externo armazenar blob.

Figura 1. Arquitetura de armazenamento externo blob

Architecture after installing EBS Provider

O provedor EBS é seu personalizado implementação de interface de provedor, o não gerenciado ISPExternalBinaryProvider e está integrado na pilha acessar a armazenamento como um componente COM.

A interface provedor fornece dois métodos: StoreBinary e RetrieveBinary. A pilha acessar armazenamento reconhece o SaveOpen e, quando os comandos são associado com arquivos blob, chama o StoreBinary e métodos RetrieveBinary RetrieveBinary, respectivamente.

Armazenamento blob pipeline: usando a salvar o comando

Você pode armazenar dados blob para o externo armazenamento de dados por agir sobre o comando Save salvar. Figura 2 é uma ilustração funcional de como um Save a partir de aplicativo da Web de front-end é roteados de pilha acessar a armazenamento para o provedor EBS e armazenada externamente. Finalmente, um registro de sua localidade é mantido como metadados no de conteúdo banco de dados.

Figura 2. O armazenamento blob usando o salvar comando

Saving data

Ao salvar um Save comando é chamado na aplicativo da Web de front-end, o meio aplicativo - camada lógica fornece validação lógica corporativa, incluindo as verificações de antivírus, promoção propriedade, gerenciamento direitos e outras tarefas Pre-Processing. Em seguida, a pilha acessar armazenamento reconhece que o comando Save salvar é para um arquivo blob. A interface provedor passa a solicitação para o provedor EBS e o provedor EBS salva o binário transmitir para o externo armazenar blob.

O provedor EBS, em seguida, retorna a BLOB ID ( BlobId) para a interface e a interface passa a identificação para a pilha acessar armazenamento. A pilha acessar persiste, em seguida, a identificação e os metadados blob no de conteúdo banco de dados.

O provedor EBS é responsável por retornando um identificador exclusivo ([out] ppbBinaryId) para o arquivo blob que ele coloca no externo armazenar blob.

Recuperar blob pipeline: usando o comando Abrir

Recuperando dados blob do externo a inverter da operação Save salvar é armazenar blob. Quando o provedor EBS reconhece um comando Open Open em um arquivo que está associado com um blob, ele chama métodos na interface de provedor para recuperar o arquivo a partir de externo armazenar blob. Figura 3 é uma ilustração funcional de como um comando Open Open a partir de aplicativo da Web de front-end é usado pela pilha acessar a armazenamento para recuperar o BLOB ID a partir de de conteúdo banco de dados e, em seguida, usa a identificação para recuperar o binário transmitir a partir de externo armazenar blob.

Figura 3. Recuperação blob usando o comando Abrir

Retrieving data

A pilha acessar armazenamento recupera metadados e BlobId enviando um Transact-consulta SQL para o de conteúdo banco de dados; Em seguida, passa a valor de retorno ( BlobId) para o provedor EBS para que ele possa buscar o apropriado arquivo binário a partir de externo armazenar blob usando o RetrieveBinary RetrieveBinary método na interface ISPExternalBinaryProvider ISPExternalBinaryProvider. O método retorna uma interface ILockBytes ILockBytes para a pilha acessar armazenamento.

Assim como ocorre com o StoreBinary StoreBinary método, o provedor EBS é responsável por log eventos de recuperação. Windows SharePoint Server registra HRESULT inesperado HRESULT retorna, mas ele atua as though retorna é simplesmente S_OK ou E_FAIL caso contrário.

Erros do Provedor EBS são mapeados pela pilha acessar a armazenamento para códigos de erro conhecidas.

Consulte também

Conceitos

Armazenamento externo dos objetos binários grandes (BLOBs) nos serviços SharePoint Windows