Selam Arkadaşlar solidus.io ile bir e ticaret uygulaması yaptım.sistem ürün resimlerini aws S3 benzeri digitalocean space adında bir sistemde sakladım ürün resmini ilk yüklediğimde resim yolu public olurken belli bir zaman sonra ürün resmi digitalocean tarafında erişim engeli veriyor.
İlk yüklediğin zaman görebiliyor musun? Ayrıca, storage.yml ve CORS detaylarını da paylaşbilir misin? Sorunun ikisinden birisinde olma ihtimali yüksek.
ilk yüklediğimde resim yolu public olurken bunun gercekten boyle oldugunu kontrol etmen gerekebilir. Ekran goruntusunden anlasilmiyor ancak resmin ilk asamada gorunur olup sonra olmamasi ulastigin kaynak url’in zaman imzali bir url oldugunu belirtiyor gibi geldi bana. Paylastigin storage.yml dosyasinda da public ayari olmadigi icin bu durum dogrulaniyor. Cozum olarak ya resmi render ettigin yerde her renderda yeni bir url uretmen gerekir (signed url) ya da dosyayi public yapman.
By default, Active Storage assumes private access to services. This means generating signed, single-use URLs for blobs. If you’d rather make blobs publicly accessible, specify public: true in your app’s config/storage.yml. (kaynak)
Demirhan’ın da bahsettiği gibi ilk olarak storage.yml'ı güncellemen gerekiyor. Kritik opsiyon public: true. Bunu eklemediğin sürece üretilen URL public olmayacak.
Ayrıca, fotoğrafları uygulaman üzerinden yüklüyorsan “Allow Methods”'da PUT iznine de ihtiyacın var hem de “Allowed Headers”'a * demeye (origin gibi).