Я использую Google Cloud Storage для хранения изображений. Я заметил, что вы можете загружать несколько файлов, но я ничего не видел о предоставлении разрешений для всех файлов за один раз. Я предоставляю полный доступ к ведру, но снова все файлы внутри него не получают одинаковые разрешения, и я должен давать один за другим. Я также реализовал обработчик для загрузки файлов программным способом. Любые идеи о том, как предоставить полный доступ к моим изображениям при загрузке? Пожалуйста, смотрите ниже код, я использую Spring MVC контроллеры:Google cloud storage java - Как предоставить доступ к файлу при загрузке программно
@RequestMapping(value="/gcs/userimages/{id}", method = RequestMethod.PUT)
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
GcsService gcsService =
GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());
// GcsFileOptions go = new GcsFileOptions(Builder.);
GcsFileOptions options = new GcsFileOptions.Builder().mimeType("image/png").build();
GcsOutputChannel outputChannel =
gcsService.createOrReplace(getFileName(req), options);
//outputChannel.write(ByteBuffer.wrap(content));
copy(req.getInputStream(), Channels.newOutputStream(outputChannel));
}
private GcsFilename getFileName(HttpServletRequest req) {
String[] splits = req.getRequestURI().split("/", 4);
if (!splits[0].equals("") || !splits[1].equals("gcs")) {
throw new IllegalArgumentException("The URL is not formed as expected. " +
"Expecting /gcs/<bucket>/<object>");
}
return new GcsFilename(splits[2], splits[3]);
}
Я пробовал это. Я дал всем пользователям доступ на чтение к ведру, но когда я загружаю файл либо вручную, либо через gcs admin, либо программно сам файл не наследует разрешения. – Dimitris
Ковши имеют два разных типа ACL. Здесь есть ACL, который представляет собой доступ к ведру, но есть также ACL-объект «по умолчанию», который является ACL, который будет применяться к объектам, созданным в этом ведре по умолчанию. Предоставление доступа для чтения в ведро не влияет на ACL объекта по умолчанию. –
@Brandon Yarbrough - Спасибо, знаете ли вы, как отредактировать ACBC по умолчанию для ACL перед загрузкой файлов? – Dimitris