Rails uygulamasında, müşteri RMA gönderim etiketlerini oluştururken S3 grubuna kaydediyorum. Sadece aws-sdk geminin V2'sine güncelledim ve şimdi ACL'yi ayarlamak için kodum çalışmıyor. V1.X çalışmışACL ile AWS S3'e dosya yükleme public_read konumuna ayarlandı public_read
Kodu:
# Saves label to S3 bucket
s3 = AWS::S3.new
obj = s3.buckets[ENV['S3_BUCKET_NAME']].objects["#{shippinglabel_filename}"]
obj.write(open(label.label('pdf').postage_label.label_pdf_url, 'rb'), :acl => :public_read)
.write
kaldırılmıştır görünüyor, bu yüzden şimdi .put
kullanıyorum. ACL'yi ayarlamaya çalıştığım durumlar dışında her şey çalışıyor. V2.0
Yeni kod:
# Saves label to S3 bucket
s3 = Aws::S3::Resource.new
obj = s3.bucket(ENV['S3_BUCKET_NAME']).object("#{shippinglabel_filename}")
obj.put(Base64.decode64(label_base64), { :acl => :public_read })
Bir Aws::S3::Errors::InvalidArgument
hata alıyorum, ACL işaret etti.
Tam hata iletisinin nedir? – dgilperez
Aws :: S3 :: Hatalar :: InvalidArgument iletinin büyük kısmıdır. Konsol sadece obj.put hattındaki Modelime işaret ediyor. Bu yararlı olurdu eğer bir ekran görüntüsü gönderebilirsiniz. – bnzelener
Hakikatin formatı veya izin verilmemesi gibi bir hatanın ipuçlarından biri olup olmadığını merak ediyordum. Telaşa gerek yok. – dgilperez