#amazon-web-services #amazon-s3
Вопрос:
Я храню некоторые PDF-файлы в корзине Amazon S3 и получаю доступ к ним через свой веб-сайт. Когда я нажимаю на некоторые документы, сохраненные в одном и том же месте, они открываются нормально. Однако один из них, в частности, дает мне эту ошибку:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>BW2VS1WEE21AM0Q9</RequestId>
<HostId>Xp1DGhbsrkdLN3F43i/u2741UJrfZUcCIyL57nXUL89A seXkT5cyJ8OBslFwqw4ObsDr45UQPw=</HostId>
</Error>
Это функция редактирования данных определенного пользователя системы, в которой хранятся документы.
public function update(BeneficiadoRequest $request, $id) {
$aluno = Beneficiados::find($id);
$projeto = Projeto::find($aluno->projeto_id);
if($request->ativo == 'Inativo' amp;amp; $aluno->ativo == 'Ativo') {
$aluno->data_inativo = Carbon::now();
$aluno->ativo = $request->ativo;
} else {
$aluno->ativo = $request->ativo;
}
$aluno->fill($request->all());
$aluno->nome = mb_strtoupper($request->nome);
$aluno->entrada = $request->entrada;
$aluno->saida = $request->saida;
$aluno->modalidade = $request->modalidade;
$aluno->turma_id = $request->turma;
$aluno->save();
$documentos = DocumentosAluno::where('beneficiado_id', $id)->first();
if ($request->hasFile('documento_foto34') amp;amp; $request->file('documento_foto34')->isValid()) {
$name = str_replace(' ', '', $request->file('documento_foto34')->getClientOriginalName());
$foto = $request->documento_foto34->storeAs('/' . $projeto->titulo . '/documentos_alunos/' . $aluno->id . '-' . $aluno->rg, $name, 's3');
$documentos->foto = $foto;
}
if ($request->hasFile('documento_identidade') amp;amp; $request->file('documento_identidade')->isValid()) {
$name = str_replace(' ', '', $request->file('documento_identidade')->getClientOriginalName());
$identidade = $request->documento_identidade->storeAs('/' . $projeto->titulo . '/documentos_alunos/' . $aluno->id . '-' . $aluno->rg, $name, 's3');
$documentos->identidade = $identidade;
}
if ($request->hasFile('documento_identidade_verso') amp;amp; $request->file('documento_identidade_verso')->isValid()) {
$name = $request->file('documento_identidade_verso')->getClientOriginalName();
$identidade_verso = $request->documento_identidade_verso->storeAs('/' . $projeto->titulo . '/documentos_alunos/' . $aluno->id . '-' . $aluno->rg, $name, 's3');
$documentos->identidade_verso = $identidade_verso;
}
if ($request->hasFile('cpf') amp;amp; $request->file('cpf')->isValid()) {
$name = $request->file('cpf')->getClientOriginalName();
$cpf = $request->cpf->storeAs('/' . $projeto->titulo . '/documentos_alunos/' . $aluno->id . '-' . $aluno->rg, $name, 's3');
$documentos->cpf = $cpf;
}
if ($request->hasFile('documento_residencia') amp;amp; $request->file('documento_residencia')->isValid()) {
$name = str_replace(' ', '', $request->file('documento_residencia')->getClientOriginalName());
$residencia = $request->documento_residencia->storeAs('/' . $projeto->titulo . '/documentos_alunos/' . $aluno->id . '-' . $aluno->rg, $name, 's3');
$documentos->residencia = $residencia;
}
if ($request->hasFile('documento_medico') amp;amp; $request->file('documento_medico')->isValid()) {
$name = str_replace(' ', '', $request->file('documento_medico')->getClientOriginalName());
$medico = $request->documento_medico->storeAs('/' . $projeto->titulo . '/documentos_alunos/' . $aluno->id . '-' . $aluno->rg, $name, 's3');
$documentos->atestado_medico = $medico;
}
if ($request->hasFile('documento_matricula') amp;amp; $request->file('documento_matricula')->isValid()) {
$name = str_replace(' ', '', $request->file('documento_matricula')->getClientOriginalName());
$matricula = $request->documento_matricula->storeAs('/' . $projeto->titulo . '/documentos_alunos/' . $aluno->id . '-' . $aluno->rg, $name, 's3');
$documentos->comprovante_matricula = $matricula;
}
if ($request->hasFile('documento_termo') amp;amp; $request->file('documento_termo')->isValid()) {
$name = str_replace(' ', '', $request->file('documento_termo')->getClientOriginalName());
$termo = $request->documento_termo->storeAs('/' . $projeto->titulo . '/documentos_alunos/' . $aluno->id . '-' . $aluno->rg, $name, 's3');
$documentos->termo_ficha = $termo;
}
$documentos->save();
return redirect()->back();
}
Комментарии:
1. Когда вы загружаете PDF-файл из корзины Amazon S3 в консоли управления AWS и открываете его, действителен ли PDF-файл в Adobe Reader?
2. ДА. Я загружаю как pdf, так и jpg, и оба открываются нормально
3. Вы используете код для отображения PDF-файла. Если это так — вы должны показать сообществу логику, которую вы используете.
4. Я уже отредактировал.