Um compartilhamento é um link para um objeto que pode expirar, ser revogado, limitar o número de downloads e, nos planos Pro e Enterprise, pedir uma senha. Veja Links e compartilhamento para entender como os links se comportam.
Compartilhamento ou downloadUrl()?
Use downloadUrl() para links de curta duração que você mesmo distribui, e um compartilhamento quando precisar revogar o link ou controlar quem faz o download.
Criando um compartilhamento
O resultado tem id, url, expires_at, max_downloads, password (se há uma definida), object e object_is_public.
Se object_is_public for true, o link de compartilhamento redireciona para a URL pública permanente do objeto: a senha, o limite de downloads e a expiração não protegem nada, porque o arquivo continua acessível nessa URL. Torne o objeto privado primeiro e depois compartilhe-o:
Listando compartilhamentos
Retorna um array de compartilhamentos, cada um com id, url, object, expires_at, remaining_downloads, password e created_at.
Revogando um compartilhamento
O link para de funcionar. revoke() resolve sem valor, e revogar um compartilhamento que não existe falha com SHARE_NOT_FOUND.
Excluir, mover ou renomear o objeto, ou alterar sua visibilidade, também quebra seus links de compartilhamento: eles apontam para o id antigo. Crie novos compartilhamentos para o novo id.
shares.create() e shares.revoke() têm uma única tentativa. Apenas shares.list(), uma leitura, é tentado novamente.
Referência da API: Criar compartilhamento, Listar compartilhamentos, Excluir compartilhamento.