def read_backblaze_meta_chunk(self, req, storage_method, meta_chunk, meta_start=None, meta_end=None): container_id = safe_get_header(req, 'container_id') sysmeta = {'container_id': container_id} key_file = self.conf.get('key_file') try: creds = BackblazeUtils.get_credentials(storage_method, key_file) except ConfigurationException as exc: return Response(exc, 500) if meta_start is not None: if meta_start < 0: offset = meta_start size = -meta_start elif meta_end is not None: offset = meta_start size = meta_end - meta_start + 1 else: offset = meta_start size = None elif meta_end is not None: offset = 0 size = meta_end + 1 handler = BackblazeChunkDownloadHandler(sysmeta, meta_chunk, offset, size, None, creds) stream = handler.get_stream() return Response(stream, 200)
def read_backblaze_meta_chunk(self, req, storage_method, meta_chunk, meta_start=None, meta_end=None): container_id = req.headers[sys_headers['container_id']] sysmeta = {'container_id': container_id} key_file = self.conf.get('key_file') try: creds = BackblazeUtils.get_credentials(storage_method, key_file) except BackblazeUtilsException as exc: return Response(exc, 500) if meta_start is not None: if meta_start < 0: offset = meta_start size = -meta_start elif meta_end is not None: offset = meta_start size = meta_end - meta_start + 1 else: offset = meta_start size = None elif meta_end is not None: offset = 0 size = meta_end + 1 handler = BackblazeChunkDownloadHandler(sysmeta, meta_chunk, offset, size, None, creds) stream = handler.get_stream() return Response(stream, 200)
def _handle_b2(self, url, chunks, headers, storage_method, reqid): meta = {'container_id': url['id']} key_file = self.conf.get('key_file') b2_creds = BackblazeUtils.get_credentials(storage_method, key_file) try: BackblazeDeleteHandler(meta, chunks, b2_creds).delete() except OioException as exc: self.logger.warn('delete failed: %s' % str(exc))
def _handle_b2(self, url, chunks, headers, storage_method, reqid): meta = {'container_id': url['id']} chunk_list = [] for chunk in chunks: chunk['url'] = chunk['id'] chunk_list.append(chunk) key_file = self.conf.get('key_file') b2_creds = BackblazeUtils.get_credentials( storage_method, key_file) try: BackblazeDeleteHandler(meta, chunk_list, b2_creds).delete() except OioException as exc: self.logger.warn('delete failed: %s' % str(exc))
def delete_chunk_backblaze(chunks, url, storage_method): meta = {} meta['container_id'] = url['id'] chunk_list = [] for chunk in chunks: chunk['url'] = chunk['id'] chunk_list.append(chunk) key_file = self.conf.get('key_file') backblaze_info = BackblazeUtils.get_credentials( storage_method, key_file) try: BackblazeDeleteHandler(meta, chunk_list, backblaze_info).delete() except OioException as e: self.logger.warn('delete failed: %s' % str(e))
def delete_chunk_backblaze(chunks, url, content_headers, storage_method): meta = {} meta['container_id'] = url['id'] chunk_list = [] for chunk in chunks: chunk['url'] = chunk['id'] chunk_list.append([chunk]) key_file = self.conf.get('key_file') backblaze_info = BackblazeUtils.put_meta_backblaze( storage_method, key_file) try: BackblazeDeleteHandler(meta, chunk_list, backblaze_info).delete() except OioException as e: self.logger.warn('delete failed: %s' % str(e))
def write_backblaze_meta_chunk(self, source, size, storage_method, sysmeta, meta_chunk): meta_checksum = md5() upload_chunk = meta_chunk[0] key_file = self.conf.get('key_file') try: creds = BackblazeUtils.get_credentials(storage_method, key_file) except ConfigurationException as exc: return Response(exc, 500) handler = BackblazeChunkWriteHandler(sysmeta, upload_chunk, meta_checksum, storage_method, creds) try: bytes_transferred, chunks = handler.stream(source) except OioException as e: return Response(str(e), 503) return Response("OK")
def write_backblaze_meta_chunk(self, source, size, storage_method, sysmeta, meta_chunk): meta_checksum = md5() upload_chunk = meta_chunk[0] key_file = self.conf.get('key_file') try: creds = BackblazeUtils.get_credentials(storage_method, key_file) except BackblazeUtilsException as exc: return Response(exc, 500) handler = BackblazeChunkWriteHandler(sysmeta, upload_chunk, meta_checksum, storage_method, creds) try: bytes_transferred, chunks = handler.stream(source) except OioException as e: return Response(str(e), 503) return Response("OK")
def _b2_credentials(self, storage_method, key_file): key_file = key_file or '/etc/oio/sds/b2-appkey.conf' try: return BackblazeUtils.get_credentials(storage_method, key_file) except BackblazeUtilsException as err: raise exc.ConfigurationException(str(err))
def _b2_credentials(self, storage_method, key_file): try: return BackblazeUtils.get_credentials(storage_method, key_file) except BackblazeUtilsException as err: raise exc.OioException(str(err))
def _put_meta_backblaze(self, storage_method, key_file): try: return BackblazeUtils.put_meta_backblaze(storage_method, key_file) except BackblazeUtilsException as e: raise exc.OioException(str(e))