Re: Radosgw and large files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I was looking at the same thing myself, and Boto seems to work ok (tested a 6G file - some sample code attached).

Regards

Mark

On 27/10/13 11:46, Derek Yarnell wrote:
Hi Shain,

Yes we have tested and have working S3 Multipart support for files >5GB
(RHEL64/0.67.4).

However, crossftp unless you have pro it would seem does not support
multipart.  Dragondisk gives the error that I have seen when using a PUT
and not multipart, EntityTooLarge.  My guess is that it is not doing
Multipart.  Now from s3cmd's source it does support multipart have you
tried to give it a --debug 2 which will output boto's debug output I
believe.   That should tell you more about if it is correctly doing a
multipart upload.

Thanks,
derek

On 10/26/13, 5:10 PM, Shain Miley wrote:
Hi,

I am wondering if anyone has successfully been able to upload files
larger than 5GB using radosgw.

I have tried using various clients, including dragondisk, crossftp,
s3cmd, etc...all of them have failed with a 'permission denied' response.

Each of the clients say they support multi-part (and it appears that
they do as files larger than 15MB gets split into multiple pieces)
however I can only upload files smaller than 5GB up to this point.

I am using 0.67.4 and Ubuntu 12.04.

Thanks in advance,

Shain

Shain Miley | Manager of Systems and Infrastructure, Digital Media |
smiley@xxxxxxx | 202.513.3649


_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com




#!/usr/bin/python
#
# Sample using mulitpart upload in boto.

import os
import boto
import boto.s3.connection

access_key = 'your-key-here'
secret_key = 'your-secret-here'

partsize = 1073741824
parts = 0
n = 0

conn = boto.connect_s3(
    aws_access_key_id = access_key,
    aws_secret_access_key = secret_key,
    host = 'your-gateway-host',
    is_secure=False,               # uncommmnt if you are not using ssl
    calling_format = boto.s3.connection.OrdinaryCallingFormat(),
    )

bucket = conn.create_bucket('bucketbig')

objname = 'big.dat'
filename = '/tmp/big.dat'

# figure out how many parts
filesize = os.path.getsize(filename)
parts = (filesize / partsize) + 1

print "  begin upload of " + filename
print "  size " + str(filesize) + ", " + str(parts) + " parts"
part = bucket.initiate_multipart_upload(objname)

fp = open(filename, 'r')
for n in range(1, parts + 1):
    if (filesize - (n - 1) * partsize < partsize):
        size = filesize - (n - 1) * partsize
    else:
        size = partsize
    print "    upload part " + str(n) + " size " + str(size)
    part.upload_part_from_file(fp = fp, part_num = n, size = size)

print "  end upload"
part.complete_upload()
fp.close()

_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux