Utilizzo del trasferimento ad alta velocità Aspera
Il trasferimento ad alta velocità Aspera supera le limitazioni dei trasferimenti FTP e HTTP tradizionali per migliorare le prestazioni di trasferimento dati nella maggior parte delle condizioni, specialmente nelle reti con una latenza e una perdita di pacchetti elevate.
Questa funzione non è attualmente supportata in Object Storage per Satellite. Ulteriori informazioni.
Invece dell'operazione HTTP standard PUT
, il trasferimento ad alta velocità Aspera carica l'oggetto utilizzando il protocollo FASP. L'utilizzo del
trasferimento ad alta velocità Aspera per i caricamenti e i download offre i seguenti vantaggi:
- Velocità di trasferimento più veloci
- Trasferire i caricamenti di oggetti di grandi dimensioni superiori a 200 MB nella console e a 1 GB utilizzando un SDK o una libreria
- Caricare intere cartelle di qualsiasi tipo di dati, come i file multimediali, le immagini disco e qualsiasi altro dato strutturato o non strutturato
- Personalizzare le velocità di trasferimento e le preferenze predefinite
- I trasferimenti possono essere esaminati, sospesi, ripresi o annullati indipendentemente
Il trasferimento ad alta velocità Aspera è disponibile nella console IBM Cloud e può essere utilizzato anche in modo programmatico utilizzando Aspera Transfer SDK.
Il trasferimento ad alta velocità Aspera è disponibile solo in determinate regioni. Per ulteriori dettagli, vedi Servizi integrati.
Non è possibile utilizzare il trasferimento ad alta velocità Aspera se un bucket di destinazione ha una politica Immutable Object Storage.
Utilizzo della console
Se aggiungi degli oggetti utilizzando la console in una regione supportata, ti viene presentata l'opzione di installare il client Aspera Connect. Questo plugin del browser fornisce il trasferimento ad alta velocità Aspera per caricare i file o le cartelle.
Installa Aspera Connect
- Seleziona Install Aspera Connect client.
- Segui le istruzioni di installazione per il tuo sistema operativo e il tuo browser.
- Riprendi il caricamento del file o della cartella.
Il plug-in di Aspera Connect può essere installato direttamente anche dal sito web di Aspera. Per assistenza nella risoluzione dei problemi con il plug-in Aspera Connect, vedi la documentazione.
Una volta installato il plug-in, puoi configurare il trasferimento ad alta velocità Aspera come predefinito per i caricamenti nel bucket di destinazione che utilizzano lo stesso browser. Seleziona Remember my browser preferences. Le opzioni sono disponibili anche nella pagina di configurazione del bucket in Transfer options. Queste opzioni ti consentono di scegliere tra standard e alta velocità come trasporto predefinito per i caricamenti e i download.
Di norma, l'utilizzo della console basata su web di IBM Cloud Object Storage non è il modo più comune per utilizzare Object Storage. L'opzione di trasferimento standard limita la dimensione degli oggetti a 200 MB e il nome file e la chiave saranno uguali. Il supporto per le dimensioni degli oggetti più grandi e per le prestazioni migliorate (a seconda dei fattori di rete) viene fornito dal trasferimento ad alta velocità Aspera.
Un server Aspera esegue un server SSH su una porta TCP configurabile (33001 per impostazione predefinita). Il firewall sul server deve consentire a questa porta TCP di raggiungere il server Aspera. Nessun server è in ascolto sulle porte UDP. Quando un trasferimento viene avviato da un client Aspera, il client apre una sessione SSH sul server SSH sulla porta TCP designata e negozia la porta UDP su cui viaggiano i dati. Per impostazione predefinita, i client e server Aspera sono configurati per utilizzare la porta UDP 33001. Dopo il passo di inizializzazione della sessione, sia il client che il server invieranno e riceveranno il traffico UDP sulla porta negoziata. Per consentire l'inizio della sessione UDP, il firewall sul server Aspera deve consentire alla porta UDP 33001 di raggiungere il server Aspera. Per ulteriori informazioni, vedi Considerazioni su firewall.
Stato di trasferimento
Active: una volta avviato un trasferimento, lo stato del trasferimento viene visualizzato come attivo. Mentre il trasferimento è attivo, puoi sospendere, riprendere o annullare un trasferimento attivo.
Completed: al completamento del tuo trasferimento, le informazioni relative ad esso e a tutti i trasferimenti di questa sessione vengono visualizzate nella scheda completed. Puoi eliminare queste informazioni. Vedrai solo le informazioni sui trasferimenti completati nella sessione corrente.
Preferences: puoi configurare l'impostazione predefinita per i caricamenti e i download ad alta velocità.
I download che utilizzano il trasferimento ad alta velocità Aspera comportano degli addebiti in uscita. Per ulteriori informazioni, vedi la pagina dei prezzi.
Advanced Preferences: puoi configurare la larghezza di banda per i caricamenti e i download.
Utilizzo di Aspera Transfer SDK
- Scarica Aspera Transfer SDK da IBM API Hub. L'SDK è una raccolta di file binari (programmi di utilità della riga di comando e un daemon per ascoltare le richieste di trasferimento), file di configurazione e connettori specifici della lingua.
- Installa le dipendenze grpc dal gestore pacchetti appropriato (pip, maven, gem, ecc.).
- Avviare il daemon e importare i relativi file del connettore del linguaggio di programmazione nel progetto.
- Creare un'istanza di un client Aspera passandolo alla porta locale utilizzata dal daemon.
- Creare un
transfer_spec
contenente tutte le informazioni necessarie per il trasferimento:icos
Informazioni:- Chiave API
- ID istanza del servizio
- Endpoint di destinazione
- Nome bucket
- Direzione trasferimento
- Host remoto (lo trovi inviando una richiesta GET a un bucket con un parametro di query
?faspConnectionInfo
) - Asset per trasferimento (fondamentalmente una serie di percorsi file)
- Passare la specifica di trasferimento e le informazioni di configurazione a una richiesta di trasferimento.
Di seguito è riportato un esempio che utilizza Python:
import random
import string
import grpc
import json
import os.path
from urllib3.connectionpool import xrange
import transfer_pb2 as transfer_manager
import transfer_pb2_grpc as transfer_manager_grpc
def run():
# create a connection to the transfer manager daemon
client = transfer_manager_grpc.TransferServiceStub(
grpc.insecure_channel('localhost:55002'))
# create file
file_path = generate_source_file()
# create transfer spec
transfer_spec = {
"session_initiation": {
"icos": {
"api_key": os.environ.get('IBMCLOUD_API_KEY'),
"bucket": os.environ.get('IBMCLOUD_BUCKET'),
"ibm_service_instance_id": os.environ.get('IBMCLOUD_COS_INSTANCE'),
"ibm_service_endpoint": os.environ.get('IBMCLOUD_COS_ENDPOINT')
}
},
"direction": "send",
"remote_host": "https://ats-sl-dal.aspera.io:443",
"title": "strategic",
"assets": {
"destination_root": "/aspera/file",
"paths": [
{
"source": file_path
}
]
}
}
transfer_spec = json.dumps(transfer_spec)
# create a transfer request
transfer_request = transfer_manager.TransferRequest(
transferType=transfer_manager.FILE_REGULAR,
config=transfer_manager.TransferConfig(),
transferSpec=transfer_spec)
# send start transfer request to transfer manager daemon
transfer_response = client.StartTransfer(transfer_request)
transfer_id = transfer_response.transferId
print("transfer started with id {0}".format(transfer_id))
# monitor transfer status
for transfer_info in client.MonitorTransfers(
transfer_manager.RegistrationRequest(
filters=[transfer_manager.RegistrationFilter(
transferId=[transfer_id]
)])):
print("transfer info {0}".format(transfer_info))
# check transfer status in response, and exit if it's done
status = transfer_info.status
if status == transfer_manager.FAILED or status == transfer_manager.COMPLETED:
print("finished {0}".format(status))
break
def generate_source_file(name='file'):
with open(name, 'w') as file:
# file.write('Hello World!')
file.write(''.join(random.choice(string.ascii_lowercase) for i in xrange(10 ** 10)))
return os.path.abspath(name)
if __name__ == '__main__':
run()