すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:シンボリックリンクの管理

最終更新日:Dec 19, 2023

シンボリックリンクはWindowsのファイルショートカットのように機能し、Object Storage Service (OSS) の関連オブジェクトにすばやくアクセスできます。

使用状況ノート

  • WebpackやBrowserifyなどのパッケージングツールを使用する場合は、npm install ali-OSSコマンドを実行して、oss SDK for Browser.jsをインストールします。

  • ブラウザからOSSバケットにアクセスしたいが、バケットにCORSルールが設定されていない場合、ブラウザはリクエストを拒否します。 したがって、ブラウザからバケットにアクセスする場合は、バケットのCORSルールを設定する必要があります。 詳細については、「インストール」をご参照ください。

  • ほとんどの場合、ブラウザではOSS SDK for Browser.jsが使用されます。 AccessKeyペアが公開されないようにするには、Security Token Service (STS) から取得した一時的なアクセス資格情報を使用してOSSにアクセスすることを推奨します。

    一時的なアクセス資格情報は、AccessKeyペアとセキュリティトークンで構成されます。 AccessKeyペアは、AccessKey IDとAccessKeyシークレットで構成されます。 一時的なアクセス資格情報を取得する方法の詳細については、「一時的なアクセス権限付与にSTSを使用する」をご参照ください。

シンボリックリンクの作成

次のコードは、シンボリックリンクを作成する方法の例を示しています。

<!DOCTYPE html>
<html lang="en">

<ヘッド>
  <meta charset="UTF-8" />
  <title> ドキュメント </title>
</head>

<body>
  <button id='upload'> アップロード </button>
  <button id='symlink'> シンボリックリンクの作成 </button>  
  <!-- SDKファイルのインポート->
  <script type="text/javascript" src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
  <script type="text/javascript">
    const client = new OSS({
       // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。 
       リージョン: 'yourRegion' 、
       // STSから取得した一時的なAccessKeyペアを指定します。 AccessKeyペアは、AccessKey IDとAccessKeyシークレットで構成されます。 
       accessKeyId: 'yourAccessKeyId' 、
       accessKeySecret: 'yourAccessKeySecret' 、
       // STSから取得したセキュリティトークンを指定します。 
       stsToken: 'yourSecurityToken' 、
       // バケットの名前を指定します。 例: examplebucket. 
       bucket: "examplebucket" 、
     });

    const upload = document.getElementById('upload')
    const symlink = document.getElementById('symlink')
    const getSymlink = document.getElementById("getSymlink")

    // アップロードするオブジェクトのコンテンツを指定します。 
    const file = new Blob(['examplectent'])
    // バケットにアップロードするオブジェクトの名前を指定します。 
    const fileName = 'exampleobject.txt'

    // Upload the object. 
    upload.addEventListener('click', () => {
      client.put(fileName, file).then(r => console.log(r))
    })
    
    // symlink.txtという名前のシンボリックリンクを作成します。 
    symlink.addEventListener('click', () => {
      client.putSymlink('symlink.txt ', fileName).then(r => console.log(r))
    })

  </script>
</body>

</html> 

シンボリックリンクが指すオブジェクトの名前を照会する

シンボリックリンクを照会するには、シンボリックリンクの読み取り権限が必要です。 次のコードは、シンボリックリンクが指すオブジェクトの名前を照会する方法の例を示しています。

<!DOCTYPE html>
<html lang="en">

<ヘッド>
  <meta charset="UTF-8" />
  <title> ドキュメント </title>
</head>

<body>  
  <button id='getSymlink'> シンボリックリンクの照会 </button>  
  <!-- SDKファイルのインポート->
  <script type="text/javascript" src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
  <script type="text/javascript">
    const client = new OSS({
       // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。 
       リージョン: 'yourRegion' 、
       // STSから取得した一時的なAccessKeyペアを指定します。 AccessKeyペアは、AccessKey IDとAccessKeyシークレットで構成されます。 
       accessKeyId: 'yourAccessKeyId' 、
       accessKeySecret: 'yourAccessKeySecret' 、
       // STSから取得したセキュリティトークンを指定します。 
       stsToken: 'yourSecurityToken' 、
       // バケットの名前を指定します。 例: examplebucket. 
       bucket: "examplebucket" 、
     });    
    
    const getSymlink = document.getElementById("getSymlink")

    // シンボリックリンクが指すオブジェクトの名前を照会します。 
    getSymlink.addEventListener('click', () => {
      client.getSymlink('symlink.txt ').then(r => console.log(r))
    })

  </script>
</body>

</html> 

参考資料

  • シンボリックリンクの作成

    • シンボリックリンクの作成に使用する完全なサンプルコードについては、『GitHub』をご参照ください。

    • シンボリックリンクを作成するために呼び出すことができるAPI操作の詳細については、「PutSymlink」をご参照ください。

  • シンボリックリンクが指すオブジェクトの照会

    • シンボリックリンクが指すオブジェクトのクエリに使用される完全なサンプルコードについては、GitHubをご参照ください。

    • シンボリックリンクが指すオブジェクトを照会するために呼び出すことができるAPI操作の詳細については、「GetSymlink」をご参照ください。