6
Ben boto
için bir dosya yüklemeye çalışılıyor,Boto ile dosya yüklerken neden 400 tane alabilirim?
import io
from boto.s3 import connection
from boto.s3 import key
conn = connection.S3Connection()
bucket = conn.get_bucket('my-bucket')
my_key = key.Key(bucket, 'asdf')
d = b'this is a test....\n' * 512000
f = io.BytesIO(d)
my_key.send_file(f, size=4*1024)
Ancak bu sonuçları:
boto.exception.S3ResponseError: S3ResponseError: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?><Error><Code>BadRequest</Code><Message>An error occurred when parsing the HTTP request.</Message><RequestId>[hex request ID]</RequestId><HostId>[giant piece of base64]</HostId></Error>
Bu istek neden başarısız oluyor?
(not: open
görünüşte sadece ... Okumaya destekler çünkü burada send_file
kullanıyorum bütün neden olduğu) set_contents_from_file()
ile send_file()
yerine buna değer ne için
Eğer '' my_key.set_contents_from_file (f) '' yaparsanız ne olur. Aynı hatayı aldın mı? – garnaat
@garnaat Çağrı başarılı; Bunun bir parçası, 'boto'nun tüm dosyayı belleğe okumadığından emin olmaktır: boyut argümanını eklerseniz,' set_contents_from_file 'sadece ilk 'size' baytını okur. (Bu, işlevlerin ne yapacağını doktorların söyledikleridir, ama istediğim şey değil.) – Thanatos
Gerçekten istediğin gibi gerçek ses akışı gibi geliyor ama maalesef S3 bunu desteklemiyor. En azından henüz değil. – garnaat