File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/libcloud/storage/__pycache__/base.cpython-310.pyc
Back
o ;j� � @ s� d Z ddlZddlZddlZddlZddlmZmZm Z m Z mZ ddlmZ ddlZddlmZmZ ddlmZmZmZ ddlmZ ddlmZ g d �Zd ZdZG dd � d �ZG dd� d�ZG dd� de�Z dS )z0 Provides base classes for working with storage � N)�Dict�List�Type�Iterator�Optional)�join)�b�httplib)� BaseDriver� Connection�ConnectionUserAndKey)� LibcloudError)�ObjectDoesNotExistError)�Object� Container� StorageDriver� CHUNK_SIZE�DEFAULT_CONTENT_TYPEi� zapplication/octet-streamc @ sf e Zd ZdZdd� Zdd� Zdd� Zdd d�Zdd d�Z ddd�Z ddd�Z dd� Zdd� ZdS )r z& Represents an object (BLOB). c C s6 || _ || _|| _|| _|pi | _|pi | _|| _dS )au :param name: Object name (must be unique per container). :type name: ``str`` :param size: Object size in bytes. :type size: ``int`` :param hash: Object hash. :type hash: ``str`` :param container: Object container. :type container: :class:`libcloud.storage.base.Container` :param extra: Extra attributes. :type extra: ``dict`` :param meta_data: Optional object meta data. :type meta_data: ``dict`` :param driver: StorageDriver instance. :type driver: :class:`libcloud.storage.base.StorageDriver` N)�name�size�hash� container�extra� meta_data�driver)�selfr r r r r r r � r �I/opt/saltstack/salt/lib/python3.10/site-packages/libcloud/storage/base.py�__init__1 s ! zObject.__init__c C � | j j| d�S �N)�obj)r �get_object_cdn_url�r r r r �get_cdn_urlZ � zObject.get_cdn_urlc C r r )r �enable_object_cdnr# r r r � enable_cdn^ r% zObject.enable_cdnFTc C � | j j| |||d�S )N)r! �destination_path�overwrite_existing�delete_on_failure�r �download_object)r r) r* r+ r r r �downloadb � �zObject.downloadNc C s | j j| |d�S )N)r! � chunk_size�r �download_object_as_stream)r r0 r r r � as_streamk s zObject.as_streamc C s | j j| |||||d�S �N)r! r) �start_bytes� end_bytesr* r+ �r �download_object_range)r r) r5 r6 r* r+ r r r �download_rangeo s �zObject.download_rangec C r( �N)r! r5 r6 r0 �r �download_object_range_as_stream)r r5 r6 r0 r r r �range_as_stream� r/ zObject.range_as_streamc C � | j �| �S �N�r � delete_objectr# r r r �delete� � z Object.deletec C s d� | j| j| j| jj�S )Nz4<Object: name={}, size={}, hash={}, provider={} ...>)�formatr r r r r# r r r �__repr__� s �zObject.__repr__�FTr? �NFT�NN) �__name__� __module__�__qualname__�__doc__r r$ r'