Изображения облачного хранилища Google отличаются для аутентифицированных и публичных url
Я столкнулся с непонятной проблемой с gcs. Я загружаю файл изображения через скрипт python в django, и изображение на authenticated url отличается от изображения на public url. На самом деле я загружаю файл, который находится в аутентифицированном url. Есть идеи, как это может произойти?
Мои сценарии в файле views.py:
def upload_to_cloud(blob_name, file_obj):
file_type = imghdr.what(file_obj)
blob_name = str(blob_name) + '.' + file_type # concatenate string to create 'file_name.format'
stats = storage.Blob(bucket=bucket, name=blob_name).exists(client) # check if logo with the same reg.nr exists
if stats is True: # if exists then delete before uploading new logo
storage.Blob(bucket=bucket, name=blob_name).delete()
blob = bucket.blob(blob_name)
blob.upload_from_file(file_obj=file_obj, content_type=f'image/{file_type}')
path = blob.public_url
return path
class CompanyProfile(SuccessMessageMixin, UpdateView):
model = Company
form_class = CompanyProfileCreationForm
def form_valid(self, form):
"""
Check if user uploaded a new logo. If yes
then upload the new logo to google cloud
"""
if self.request.FILES['logo']:
blob_name = self.request.user.company.reg_nr # get company registration number
file_obj = self.request.FILES['logo'] # store uploaded file in variable
form.logo_url = upload_to_cloud(blob_name, file_obj) # update company.logo_url with path to uploaded file
return super().form_valid(form)
else:
return super().form_valid(form)